Text-Dateien aus dem Data-Block einlesen[umständlich gelöst]

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
KatSeiko
Beiträge: 367
Registriert: 19.07.2008 07:47

Re: Text-Dateien aus dem Data-Block einlesen

Beitrag von KatSeiko »

Ich habe das Problem durch ein Helper-Programm gelöst:

Code:

Code: Alles auswählen

Procedure TransferData(filename)
  Source = ReadFile(#PB_Any, filename+".txt")
  Dest = CreateFile(#PB_Any, filename+".pbi")
  If Source And Dest
    If Eof(Source)
      MessageRequester("Info", filename+" is empty!")
    Else
      Text.s = #DQUOTE$+ReadString(Source)+#DQUOTE$
      Lines = 1
      While Not Eof(Source)
        Current.s = #DQUOTE$+ReadString(Source)+#DQUOTE$
        Text + ", " + Current
        Lines + 1
      Wend
      WriteStringN(Dest, "Data.i "+Str(Lines))
      WriteString(Dest, "Data.s "+Text)
    EndIf
  EndIf
EndProcedure

TransferData("signature")
TransferData("program")
In meinem Programm habe ich nun statt IncludeBinary nur noch IncludeFile stehen, mit den entsprechenden PBI-Dateien. Die CheckFileSignature-Prozedur (mit SHA1 und MD5) ist die gleiche, wird nun aber durch eine Helper-Prozedur aufgerufen, die mit "Restore" arbeitet und zuerst prüft, ob drei Zeilen vorhanden sind (Read.i), erst dann werden die drei Werte eingelesen (Read.s) und an die CheckFileSignature-Prozedur übergeben.

Leider sehr umständlich. Es wär SO viel einfacher, wenn eine zukünftige Version von PureBasic so was wie "CatchFile" könnte, die alle Funktionen für das normale Datei-Lesen unterstützen würde..
Win7 Ultimate x64, PureBasic 5.11

There is no substitute..
BildBildBild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Text-Dateien aus dem Data-Block einlesen

Beitrag von ts-soft »

KatSeiko hat geschrieben:Es wär SO viel einfacher, wenn eine zukünftige Version von PureBasic so was wie "CatchFile" könnte, die alle Funktionen für das normale Datei-Lesen unterstützen würde..
Kann man sich selber schreiben. Per PeekA die ersten Bytes auf BOM prüfen, mit PeekS(.., .., Format) peeken,
usw. Hab aber keine Lust Dir das alles vorzukauen, Infos zu BOM gibt es auf Wikepedia, zu Peek in der PB-Hilfe.
Sollte keine Problem sich das selbst zu erarbeiten. Genau das nennt sich dann programmieren :wink:

Du hast alle fehlenden Informationen, welches Format haben die Dateien, ist Dein Programm in Unicode usw.,
deshalb sollte es für Dich keine Problem sein, mithilfe dieser Infos, sowie den hier geposteten Codes, es selbst
zu optimieren.

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten