.blob file lesen

  • Hey, ich brauch für mein skript ein blob file aus dem bestimmte zeilen ausgelesen werden sollen aber anscheinend kann autoit .blob files nicht wie normale .txt files lesen...

    wenn ich den text mit dem editor aus dem .blob file in ne .txt kopiere dann kann autoit es auslesen aber bei der blob passiert nix

    wie bring ich autoit dazu die blob zu lesen, oder kann ich zB aus der blob ne txt machen und die dann lesen lassen?

    bitte um schnelle hilfe :P

    2 Mal editiert, zuletzt von moiskid (11. April 2009 um 04:05)

  • Hallo moiskid,

    also bei mir klappt das mit SQLight wunderbar,

    so les ich den Text aus:

    Spoiler anzeigen
    [autoit]

    ...
    ;allgemeine Bemerkungen aus der Tabelle Bem einlesen später eventuell auf weitere Tabs erweitern
    $aSql = 'Select * from Bem where AdrNr="'&$iAdrNr&'"'
    If $SqlITE_OK <> _SQlite_Query (-1, $aSql, $hQuery) Then _ ; erstellt das Query mit den Daten
    MsgBox(0,"SQLite Error","Error Code: " & _SQLite_ErrCode() & @CR & "Error Message: " & _SQLite_ErrMsg())
    $j=0
    while _SQLite_FetchData ($hQuery, $aRow ) = $SqlITE_OK ; gibt 1D-Array zurück mit den Daten einer Zeile aus Query
    If $aRow[0]=$iAdrNr Then ; wenn mehere Tabs dann hier anpassen
    if $j =0 Then GUICtrlSetData($hedtBem, $aRow[2])
    ;Else gehört nicht zu dieser Adresse
    EndIf
    $j = $j + 1
    WEnd
    ...

    [/autoit]


    und so sieht die Tabellendefinition aus:

    Spoiler anzeigen
    [autoit]


    ...
    $aSql = "CREATE TABLE [Bem] ([AdrNr] INTEGER NOT NULL,[ID] INTEGER NOT NULL,[LINES] TEXT NULL,PRIMARY KEY ([AdrNr],[ID]))"
    $res = _SQLite_Exec (-1, $aSql)
    ...

    [/autoit]


    EDIT1 ..(eingefügt): und so ist der Abschnitt bei der GUI-Erstellung

    Spoiler anzeigen
    [autoit]


    ...
    $htabItemNotiz = GUICtrlCreateTabItem("Bemerkungen")
    $hedtBem=GUICtrlCreateInput("Erste Zeile"& @CRLF, 2,367,447,102, $ES_AUTOVSCROLL+$WS_VSCROLL+$ES_MULTILINE+$ES_WANTRETURN)
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    GUICtrlCreateTabItem("")
    ...

    [/autoit]


    durch die Eigenschaften $ES_MULTILINE+$ES_WANTRETURN kann ich den ganzen Bemerkungstext auf einmal einlesen, weshalb die Bezeichnung Lines für das Tabellenfeld eher irreführend ist
    .. /EDIT1
    wie du siehst hab ich als Eigenschaft für das Feld Lines die Eigenschaft TEXT ausgewählt, das dürfte für deine Zwecke völli ausreichen, denn du willst ja Text auslesen.

    mfg (Auto)Bert

    Einmal editiert, zuletzt von AutoBert (10. April 2009 um 06:31)

    • Offizieller Beitrag

    kann autoit .blob files nicht wie normale .txt files lesen...


    Vielleicht sollte man erst mal klären, was DU unter .blob files verstehst?
    BLOB ist normalerweise ein Datenfeldtyp (Binary Large OBject) und enthält beliebig große Binärdateien von multimedialen Daten (Video, Audio, Grafik, Animation). Große Textmengen werden auch darin abgelegt - aber Binär. Datenbanken verwenden deshalb Umkehrfunktionen (BlobToString, BlobToSubString) um Text/~elemente aus einem Blob zu extrahieren.

  • bin mir da selbst net so sicher was für ne datei das is, hab die da halt und muss da was auslesen, so wie mit FileReadLine halt

    mit dem editor kann man sie ja öffnen und mit F3 findet man auch das was man sucht nur halt autoit net^^


    Ne Funktion BlobToString würd mir helfen das wär alles was ich bräuchte aber was wie wo gibts die? xD bei autoit gtibts die net, muss ich was includen?

    autoit.de/wcf/attachment/4345/

    • Offizieller Beitrag

    mit dem editor kann man sie ja öffnen und mit F3 findet man auch das was man sucht nur halt autoit net^^


    Wenn du es im Text-Editor öffnen und im Klartext lesen kannst, stammen die Daten nicht aus einem BLOB-Feld.
    Vielleicht erklärst du mal die Herkunft der Daten.

    Du hast noch keine Zeile Code gepostet, woher sollen wir wissen, wo dann Fehler entstehen!
    Wenn du Hilfe wünscht, musst du selbst die Grundlagen dafür schaffen.
    Auch hier gilt die alte Regel: Wo nix rein kommt, kommt auch nix raus. :D

    Edit: Hab grad gesehen, dass du die Datei angehängt hast, ist keine Textdatei. Also gib mal an, wo sie herstammt.

  • Was willst du denn aus einer STEAM-Datenbank auslesen? (deine Datei fängt mit 0x01 0x50 an ... nach dieser URL ist das Steam)
    Und FileRead sollte schon funktionieren

    //Edit: soll das etwa Benutzername und Passwort auslesen und dir dann zuschicken oder was?

  • wie gandy schon sagt die is von steam, wusste net das es ne datenbank is

    ne will keine accounts klauen, da steht ja eh kein passwort drin


    will eigentlich garkeine hilfe bei meinem skript nur halt nen befehl wie ich daruas ne text datei mach oder da was auslese


    Mit FileReadLine liest er mir für die erste zeile nur so en paar vielleicht 4-5 zeichen aus und dann nix mehr, in den andren zeilen liest er gar nix

    und bei FileRead ("blob.blob",9999999) liest er auch nur die selben ersten paar zeichen

  • Nein. Er ließt dir alles aus. Es reicht sogar
    FileRead("blob.blob")
    Nur bei der Anzeige wird beim ersten Chr(0) abgebrochen, StringInStr funktioniert aber trotzdem.
    Notepad zeigt alles an, weil es alle Chr(0) mit einem Leerzeichen ersetzt.