Welcome to Blog v3

Momentan wird der Blog überarbeitet. Demnächst gibt es Tutorials und die Links werden erneuert !

Neue Themen in v3

Mehr Tutorials zu Programmierung, Cracking und Reversing.

-->UND: Tools, Tools, Tools ^^ !

Filmdatenbank-Manager v3

Eine neue und weitaus überarbeitete Version wurde im januar 2014 veröffentlicht !

SKY.CS.Finder

Der neue Sky.CS.Finder.2.0 wurde im Januar veröffentlicht und aktualisiert sich selbst...

Android MovieQuotesAPP

Währendessen gab es in 2013 einen Versuch in die App Programmierung vorzustoßen...

Dienstag, 30. September 2014

Filmdatenbank-Manager v4 Sneak Peek (Preview)

OK, das ist hiermit mein 300. Beitrag und wie könnte ich diesen besser zelebrieren, als Neuigkeiten zum Projekt, wofür es das Forum eigentlich gibt, in Form von ein paar Bildern zum kommenden Update nachzureichen !?

Ich verliere gar keine großen Worte, sondern haue ein paar zufällig ausgewählte Bilder raus. Die neue Oberfläche wird flexibler bei den versch. Bildschirmauflösungen sein, als es v3 ist.























Einen umfassenden "Changelog", welcher auf alle Neuigkeiten im kommenden Update eingeht gibt es natürlich erst, wenn alles soweit integriert ist und auch läuft.

Montag, 22. September 2014

Neues aus dem Forum

Auch im Forum (LINK) hat sich wieder einiges getan. So gibt es neue Filmreviews, Videotutorials und nun auch Serienstreams.

Neues zu Sky.CS.Finder 3 und Filmdatenbank-Manager 4

Nach wochenlanger Funkstille bezüglich des sich noch eine Weile auf sich warten lassende Update auf v4 gibt es hier nur mal einen kleinen Statusbericht, bevor es nächste Woche oder so ein paar Screenshots gibt.

Die Arbeiten an v4 wurde, nachdem sie begonnen und zügig voran gingen nach kurzer Zeit für ein paar Wochen eingestellt, da ich wie bereits erwähnt weniger Zeit aufbringen kann. Jedenfalls sind die Arbeiten dann wieder aufgenommen worden und werden nun nebenbei sukzessive fortgeführt.
Die neue Oberfläche (das Frontend) ist fertig und das Backend (Code für DB, Datei- und Internet-Handling etc.) wurde bereits für v4 ein wenig angepasst (was durch die Trennung aber logischerweise gering ausfällt).

Jetzt gilt es die beiden Teile noch zu verknüpfen und natürlich noch einige neue Funktionen einzuführen.
Ich wage mal abzuschätzen, dass das verknüfen von Front- und Backend zu 75 - 80% abgeschlossen ist.
Daraus könnt ihr lesen, dass durch das noch zu erledigende einführen neuer Funktionen usw. das Update noch ein wenig dauert.

Der derzeitige Release ist für Anfang NOVEMBER geplant.

Screenshots gibts wie bereits erwähnt demnächst.

=============================================

Eine Sache noch zum Sky.CS.Finder.
Die Arbeiten an einer neuen, verbesserten und auch umfangreicheren Version (v3) werden jetzt wieder aufgenommen.
Diese Arbeiten werden natürlich schneller abgeschlossen als die am FDBManager Update. Näheres dazu gibt es ebenfalls zu einem geeigneten Zeitpunkt. Einfach dranbleiben  :).

Donnerstag, 4. September 2014

VODExtractor (Stream Downloader)

..:: VODExtractor ::..

Hier ein spontanes Projekt, welches auch nebenbei weiterhin gepflegt wird. 
Das Kommandozeilen-Programm lädt anhand einer übergebenen URL (auf welcher ansonsten nur ein integrierter Player ist) das dort eingebettete Video vom jeweiligen Anbieter auf eure Festplatte herunter.

Es werden in den kommenden Updates weitere "Hoster" hinzugefügt. Für näheres siehe das unten angefügte README.






README

EDIT (04.09) : 

Shared.sx doesn´t work and will be fixed in the upcoming update...

USAGE:
  • press Win-Key + R and enter "cmd" in the popup window OR use the search in the start-menu
  • use the "cd" Command to change to the "vodextractor" directory (e.g cd "C:\Users\Username\Desktop\vodextractor") --> the quotation marks are used to handle the occurence of possible whitespaces
  • you can now start the "vodextractor.exe" with the following commands
    • -h OR --help --> shows a little helpscreen (optional)
    • -L OR --List --> shows all currently supportes Streaming Hosters (optional)
    • -U --> Pass the URL to the program (necessary)
  • copy the video URL from your browser and pass it to the programm                                            (e.g: vodextractor.exe -U "http://www.nowvideo.sx/video/some_random_stuff")
  • PS: "sockshare" sucks
 

DOWNLOAD

 Intel 32-Bit Version : Link
AMD 64-Bit Version : Link

Sonntag, 6. Juli 2014

Neuigkeiten vom 06.07.2014 (Filmdatenbank-Manager v4)

Die Seite "aktuelle Projekte" wurde soeben um einen neuen Eintrag erweitert, denn die Arbeiten am Filmdatenbank-Manager in der mittlerweile 4. Version laufen bereits. Dies ist jedoch KEIN Grund die v3 Version jetzt links liegen zu lassen, denn die Änderungen in v4 beziehen sich hauptsächlich auf das Design und ein paar zusätzliche Funktionen. Wenn v4 erscheint, so wird euch dies der in v3 integrierte Updater mitteilen und ihr könnt von v3 aus auf die neue Hauptversion "upgraden". Also steht einem weiteren Einsatz von v3 zur Zeit nichts im Wege. Des Weiteren wird v4 noch etwas auf sich warten lassen, denn ich habe für das Projekt (wie es einige sicherlich bereits auch am Sky.CS.Finder bereits bemerkt haben) nicht mehr soviel Zeit zur Verfügung, wie es zu v3 Zeiten noch der Fall war.

Nichtsdestotrotz erscheint v4 in den nächsten Wochen. Ich werde euch hier mit Screenshots und "Changelogs" auf dem Laufenden halten.

Falls ihr euch neue Funktionen wünscht, erwähnt sie HIER unter diesem Beitrag.

Montag, 9. Juni 2014

SQLite in Embarcadero RAD Studio XE 4 einbinden (C++)



Das Originale (und besser hervorgehobene) Tutorial findet ihr im Forum unter http://www.filmdatenbank-manager.de/forum/show/index.php?page=Thread&threadID=159. Dort ist das ganze etwas besser lesbar, da ich es hier nur grob in den Blog übertragen habe. Trotzdem viel Spaß damit, wem es etwas nützt.

================================================================


Wenn ihr eine schmale Datenbank in eure C++ Applikation einbinden wollt UND ihr dabei das Embarcadero RAD Studio XE 4 (geht auch bei anderen Versionen, ich habe es in diesem Fall unter der XE 4 Version gemacht) verwendet, dann ist dies was nun folgt eine Variante um das eigene Projekt umsetzen zu können.
Ein Tutorial für die SQLite/C++ Verwendung AUßERHALB des Embarcadero Studios (also ohne dessen fertige Komponenten) kann ich gerne nachliefern, FALLS dies gewünscht wird.

1.) Was ist SQLite ?



SQLite ist eine vollständig in C geschriebene Programmbibliothek, welche ein relationales Datenbanksystem enthält. Es ist prädestiniert für den Einsatz in eingebetteten Datenbanksystemen und unterstützt einen Großteil des SQL-92 Sprachstandards. Für diverse Programmiersprachen (z.B. Java) stehen sogenannte Wrapper sowie ODBC-, dbExpress und JDBC-Treiber zur Verfügung. SQLite erzwingt keine Typsicherheit: Fehlerhafte Eingaben werden in der Regel akzeptiert und in Zeichenketten umgewandelt.

Soviel dazu...

2.) Was wird benötigt ?



  •     Embarcadero RAD Studio XE ... :P



*Anmerkung : Ich verwende das FF Plugin "SQLite Manager" mit dem SQLite3 Shell-Frontend in Kombination, da ich diesen bereits bei einem anderen Projekt, bei welchem ich eh´ viel der Informationen aus dem Browser geholt habe, verwendet habe. Das mache ich nur um das Tutorial einsteigerfreundlicher zu halten, denn so können wir komfortabel die Datenbank im FF-Plugin erstellen ohne uns um den SQL Code zur Erstellung der Datenbank einen Kopf machen zu müssen.
Fortgeschrittene und Experten können das natürlich sofort in sqlite3 erledigen.


3.) Unsere Beispieldatenbank



OK, hier ist unser kleines Praxisbeispiel als Entity-Relationship-Modell in der Barker Darstellung.


Und hier eine Phase weiter als Relationenmodell.

    Computer(Computer_id, CPU, RAM, Vendor)
    Desktop(Computer_id, Monitortyp)
    Notebook(Computer_id, integrLaufwerk)



4.) Umsetzung als SQLite DB


4.1.) Installation von SQLite3 (falls noch nicht geschehen)



Falls ihr sqlite noch nicht installiert habt, dann folgt obigen Link ("Kapitel" 2) und downloadet die 2 Archive sqlite-shell-win32-x86-3080500.zip und
sqlite-dll-win32-x86-3080500.zip. Entpackt diese und kopiert alle Dateien der 2 entpackten Ordner in EINEN gemeinsamen Ordner, sodass ihr
im Ordner die 3 Dateien sqlite3.def, sqlite3.dll und sqlite3.exe liegen habt.
Nennt den Ordner z.B. "SQLite" und kopiert ihn auf eure Hauptpartition (z.B. C:\SQLite\...").
Nun müsst ihr diesen Pfad noch in die Umgebungsvariablen des Systems schreiben, um das Tool von einem beliebigen Ort aus der Konsole heraus öffnen zu können.
Für alle die nicht mehr ganz wissen wie das geht:

  •     Rechtsklick auf "Arbeitsplatz" bzw. "Computer" bei den neueren Windows OSs.
    auf Eigenschaften klicken
  •     im sich öffnenden Fenster links auf "Erweiterte Systemeinstellungen" klicken
  •     im Reiter/Tab "Erweitert" auf "Umgebungsvariablen" klicken
    in der Liste der "Systemvariablen" die Variable Namens "Path" anklicken und bearbeiten
  •     hängt an den letzten Eintrag in der Liste ein ";" (ohne Anführungsstriche), um einen neuen Eintrag hinzuzufügen
  •     wenn ihr das getan habt, schreibt nun euren Pfad hinein (z.B. "C:\SQLite\") --> wieder ohne Anführungsstriche
    Fertig !



4.2.) Erstellen der Datenbank



Kommen wir nun zur Erstellung der Datenbank. Am Ende des Tutorials könnt ihr die Beispieldaten aber auch einfach herunterladen, falls ihr nicht jeden einzelnen Schritt durchgehen wollt.

Startet Firefox und öffnet unter "Extras" den "SQLiteManager". Das Tool ist ziemlich selbsterklärend, klickt auf die Schaltfläche "Neue Datenbank" und gebt ihr den Namen "MiniTutDB" und erstellt die neuen Tabellen der DB wie auf den Screenshots zu sehen ist über die Schaltfläche "Tabelle erstellen".




Seid ihr damit fertig, dann speichert den Befehl zur Erstellung unserer Beispieldatenbank über einem Klick auf das Menü "Datenbank\Datenbank exportieren".
Speichert die Datei unter dem Namen "MiniTutDB.sql" ab. Diese Datei enthält nun den nötigen SQL Code, den wir in sqlite3 benötigen, um unsere Datenbank in einer "DB"-Datei abzuspeichern, welche wir dann im C++ Programm verwenden werden.

Öffnet die Konsole, indem ihr [WindowsTaste]+R drückt und "cmd" gefolgt von ENTER eingebt. Oder ihr sucht in eurer Programmliste nach "cmd" :).
In der Konsole angekommen gilt es nun folgende Schritte zu erledigen:

    gebt nun "sqlite3", gefolgt von ENTER ein (es sollten nun Versionsinformationen etc. von sqlite3 erscheinen)
    Das Programm wartet nun auf eure Instruktionen (zu erkennen am blinkendem Cursor und am "sqlite> ")
    Die oben erwähnten Fortgeschrittenen und Experten (die das hier nicht bräuchten) könnten die Datenbank jetzt auch rein in der Konsole erzeugen, alle anderen die es oben über das FF-Plugin gelöst haben, müssen die nötigen Befehle jetzt nicht eingeben sondern verweisen einfach auf unsere Datei "MiniTutDB.sql", welche alle benötigten Befehle beinhaltet
    das machen wir folgendermaßen : gebt nun .read "Pfad zur Datei" ein
    WICHTIG: Der Pfad ist falls er Leerzeichen enthält in Anführungszeichen zu setzen UND die Verzeichnistrenner sind nicht wie in der Windows-Schreibweise durch einen Backslash (\), sondern wie bei Unix durch einen Slash (/) anzugeben. Bsp : .read "C:/Users/username/Desktop/SQLite.Minitut/MiniTutDB.sql"
    es sollte keinen Fehler geben und sqlite3 wartet auf eure nächste Instruktion
    gebt nun .save "Pfad zur Ausgabedatei" ein. Diese endet mit der Endung ".db", also in meinem Falle
    .save "C:/Users/username/Desktop/SQLite.Minitut/MiniTutDB.db"
    Gratulation, die Datenbank sollte nun im angegebenen Verzeichnis erstellt worden sein, beendet "sqlite3" nun mit [Strg.]+C und dann das Terminal mit "exit"



5.) Unsere Beispielapplikation (Embarcadero RAD Studio XE C++)



OK, kommen wir ans Eingemachte. Aber nicht zuviel erwarten :D. Da das nur ein Minitutorial ist, ist das Beispielprog alles andere als ein vollwertiger Aufsatz für unsere darunterliegende DB. Ich zeige nur die Verwendung zweier Selektionsabfragen auf 2 verschiedene Arten.
Die erste Variante liefert die Ergebnisse des ResultSets einfach in ein Memo, die zweite Variante ist mit einer Tabellenartigen Ausgabe verknüpft.
Dem Programm fehlen also jegliche Möglichkeiten schreibend auf die DB zugreifen zu können um auch etwas nützliches mit dieser anzustellen.
Dies ist aber kein Thema, da dass Programm schnell erweitert werden kann, das ist aber SQL und hat mit diesem Rezept eher weniger zu tun.

Ladet euch die Projektdateien einfach am Ende des Tutorials herunter und startet es in "Embarcadero RAD Studio XE", da ich jetzt hier nicht auf jeden einzelnen Erzeugungsschritt eingehe und stattdessen nur auf die wichtigsten Einstellungen im Objektinspektor und den Code eingehen werde.

Eine Anmerkung noch : TSQLQuery ist ein unidirektionaler Datensatz. Deshalb ist es uns nicht wie bei anderen Datensätzen möglich, mehrere Einträge im Speicher zu puffern und können demzufolge nur mit den "First"- und "Next"-Methoden durch den Datensatz navigieren. Mit diversen anderen Query-Komponenten geht das, und man kann eine einfache DB-Grid an seine Query binden.

Das Programmlayout:






Die "Captions" "via DBGrid" sind NICHT mehr korrekt, da ich die Darstellung aus dem oben genannten Grund auf LiveBindings basieren lasse !!!

Die Programmkonfiguration:


Bevor es an den Code geht, kommen wir zur Konfiguration bzw. der Einstellung der Komponenten, denn diese müssen zur Funktionstüchtigkeit erst untereinander verknüpft werden.


  •     SQLConnection1 : stellt im Objektinspektor die Eigenschaften ConnectionName auf  SQLITECONNECTION und Driver auf Sqlite
  •     DataSource1 : stellt im Objektinspektor die Eigenschaft DataSet auf SQLQuery1
  •     SQLQuery1 : stellt im Objektinspektor die Eigenschaft SQLConnection auf SQLConnection1
  •     DataSetProvider1 : stellt im Objektinspektor die Eigenschaft DataSet auf SQLQuery1



Um unsere Tabellenausgabe zu bekommen, klicken wir einfach in die untere Groupbox (Groupbox2) mit einem rechtsklick ins Formular und wählen "Visuell binden" aus.
Wählt den "LiveBindings-Experten" (siehe Bild)







Nun wählt folgendes:





  • wählt "Gitter mit einer Datenquelle verknüpfen" und auf "weiter" klicken
  • wählt im Reiter/Tab "Neues Gitter" die Option "TStringGrid" und auf "weiter" klicken
  • wählt im Reiter/Tab "vorhandene Datenquelle" die Option "DataSource1" und auf "Fertigstellen" klicken

Code (nur main.cpp):   

C++ Quelltext

//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
// Verbindung zur Datenbank aufbauen
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    // Pfad zur DB angeben, damit der Treiber darauf arbeiten kann
    Memo1->Lines->Add(ReplaceStr(ExtractFilePath(Application->ExeName) +
                                "MiniTutDB.db", ".", ""));
    SQLConnection1->Params->Values["Database"] = ReplaceStr(ExtractFilePath(Application->ExeName) +
                                "MiniTutDB.db", ".", "");
    try
    {
        // Verbindung aufnehmen
        SQLConnection1->Connected = true;
        Button2->Enabled = true;
        Button3->Enabled = true;
        Memo1->Lines->Add("Verbindung aufgebaut");
    }
    catch(EDatabaseError& E)
    {
        MessageDlg(AnsiString("Fehler !\n") + AnsiString(E.Message) , mtError,
                   TMsgDlgButtons()<<mbOK, 0);
        Button2->Enabled = false;
        Button3->Enabled = false;
    }
}
//---------------------------------------------------------------------------
 
// 1. Variante --> Allgemeine Auswahlabfrage
void __fastcall TForm1::Button2Click(TObject *Sender)
{
    // Deklarationen
    String query;
    TDataSet *rs;
    TStringList *list;
    int i = 0;
 
    // Allgemeine Abfrage (den ersten Eintrag holen)
    query = "SELECT * FROM Computer WHERE Computer_id=1;";
 
    try
    {
        // Abfrage ausführen
        SQLConnection1->Execute(query, NULL, rs);
        // Ergebnisse im Memo ausgeben
        if( !(rs->IsEmpty()) )
        {
            rs->First();
            list = new TStringList();
            rs->GetFieldNames(list);
            while( !(rs->Eof) )
            {
                for( ; i < list->Count; i++)
                    Memo1->Lines->Add(rs->FieldByName(list->Strings[i])->AsString);
                rs->Next();
            }
        }
    }
    catch(Exception &exception)
    {
      Memo1->Lines->Add("FEHLER : " + exception.Message);
      Button2->Enabled = false;
      Button3->Enabled = false;
    }
}
//---------------------------------------------------------------------------
 
// 2. Variante --> Allgemeine Auswahlabfrage
/* TSQLQuery ist ein unidirektionaler Datensatz. Deshalb ist es uns nicht
   wie bei anderen Datensätzen möglich, mehrere Einträge im Speicher zu puffern
   und können demzufolge nur mit den "First"- und "Next"-Methoden durch den
   Datensatz navigieren.
*/
void __fastcall TForm1::Button3Click(TObject *Sender)
{
    // Sollte zwar nie der Fall sein, aber man weiß ja nie...
    if (RadioGroup1->ItemIndex < 0 && RadioGroup1->ItemIndex > 2)
    {
        MessageDlg(AnsiString("Ungültige Option. Breche ab..."), mtError,
                   TMsgDlgButtons()<<mbOK, 0);
        exit(-1);
    }
 
    SQLQuery1->Close();
    SQLQuery1->SQL->Clear();
 
    switch(RadioGroup1->ItemIndex)
    {
        case 0 : {SQLQuery1->SQL->Add("Select * from Computer;"); break;}
        case 1 : {SQLQuery1->SQL->Add("Select * from Desktop;"); break;}
        case 2 : {SQLQuery1->SQL->Add("Select * from Notebook;"); break;}
    }
 
    // Es ist nur eine SELEKTION, deshalb "Open", für die anderen Aggregation
    // dann ".ExecSQL" nehmen
    //SQLQuery1->ExecSQL(true);
    SQLQuery1->Open();
}
//---------------------------------------------------------------------------



Beispielausgabe:




|-- Zweite Variante (oben) Erste Variante (unten) --|




Wie ihr seht, habe ich (ohne es explizit zu erwähnen) noch 2 Einträge in unsere oben erstellte Datenbank geschrieben, ansonsten gäbe es ja auch nichts abzufragen :P. Die Beispieldatenbank unten im Download ist bereits mit den 2 Einträgen versehen.

..:: DOWNLOAD UNSERES KLEINEN PROJEKTES ::..

Share-Online : Link


Falls ihr Fehler gefunden habt oder Verbesserungsvorschläge parat habt, dann lasst es mich in diesem Thread wissen !

Neues aus dem Forum

Hallo liebe FDB´ler, hier der Newsletter von Kalenderwoche 23. So langsam nimmt die Sache Form an und wir erweitern das Forum weiterhin mit neuen Unterforen und neuen Beiträgen und hin und wieder findet sich eine neue Registrierung bei uns ein. Dennoch hoffen wir, dass das Ganze hier von Woche zu Woche mehr fahrt aufnehmen wird und wir bleiben auch weiterhin am Ball, um dies zu erreichen. Des Weiteren wünschen wir euch hiermit noch frohe Pfingsten und bringen auf diesen Weg auch gleich die letzten Themen im Forum zu euch. WENN ihr die Links nicht öffnen könnt, dann verschiebt diese Nachricht aus eurem SPAM Ordner in den normalen Posteingang :-), dann geht es zumindest bei Googlemail. Bei zukünftigen Newslettern können wir auch die Themen ein wenig aufbereiten anstatt Links zu verteilen ^^.
________________ __//..:: Filmdatenbank-Manager.de FORUM ::..\\__ ________________

Donnerstag, 29. Mai 2014

Neues vom Sky.CS.Finder

OK, nach längerer Blog-Abstinenz hier mal eine kleine Info:
Im Sommer (also bald) wird der Sky.CS.Finder noch ein wenig erweitert und des weiteren werde ich dem Sky.CS.Finder eine neue Plattform spendieren (mehr dazu wenn es soweit ist).

Bis dahin weiterhin viel Spass im Forum.

Neues aus dem Forum

Nach längerer Funkstille gibt es hiermit nun den neuen Newsletter. Wir freuen uns über den kleinen Zulauf an Mitgliedern (wirklich !) und hoffen, dass wir mit zunehmendem Angebot weiterhin wachsen werden. Und auch ich hoffe, hin und wieder mal diesem Projekt etwas mehr Zeit gönnen zu können. Des Weiteren stehen wir zeitweise unter Angriffen auf das Forum direkt oder auf den Mailserver. Wir reagieren schnellstmöglich auf solche Gegebenheiten und momentan sollte auch alles stabil laufen. Hier nun die letzten 10 Themen im Forum.


Neue Forenbeiträge der letzten Tage


Themen

- Speedfan 4.49
- Cpu-Z 1.692
- Godzilla (2014) Review (Empfehlung)
- MS - Microsoft Access 2010 VBA Programming Inside Out [ENGLISCH]
- Hanser.Verlag.-.Pruefungs.und.Testaufgaben.zur.Physik.GERMAN.RETAiL.eBOOk-PDFWriters [DEUTSCH]
- Debugging with GDB - The GNU Source-Level Debugger, 10th edition (Free Software Foundation, 2011 [ENGLISCH]
- C++ GUI Programming with Qt 4, 2nd ed [ENGLISCH]
- [TV-Tipp] Hard Enduro (The Tough One)
- Sky.CS.Finder.v2.0 (Update : 01.05)
- Neues vom 30.04.2014

Wir wüschen weiterhin viel Spaß bei uns...

Donnerstag, 1. Mai 2014

Sky.CS.Finder 2.0 UPDATE 01.05

So, hier mal wieder ein kleines Update für den Sky.CS.Finder v2.0. In den nächsten Tagen wird evtl. nochmal eins erscheinen.





      ..:: Changelog 010514 ::..


Update #1 : integrated feedback function

        __--// Sky.CS.Finder v2.0 \\--__



Gruß
hackmac89