Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Was ist das für ein DateiTyp? Zeichen1+chr(0)+Zeichen2+... (https://www.delphipraxis.net/20223-ist-das-fuer-ein-dateityp-zeichen1-chr-0-zeichen2.html)

DracoBlue 14. Apr 2004 22:17


Was ist das für ein DateiTyp? Zeichen1+chr(0)+Zeichen2+...
 
Hallo!

Ich bin grade am decodieren einiger Dateitypen :P.

Da bin ich auf nen String gestossen, der ungerfähr so aussieht :

Delphi-Quellcode:
Zeichen Wert
1        65
2        0
3        66
4        0
5        67
6        0
7        66
8        0
Das das nun ABCB heißt, kann man sich denken, wenn ich jedoch nen TMemoryStream machen möchte und dafür nen Datentypen definieren möchte dann geht ja ein normaler String nicht.

Weiss jemand zufällig was das für ein string ist?

Mfg, Draco

himitsu 14. Apr 2004 22:21

Re: Was ist das für ein DateiTyp? Zeichen1+chr(0)+Zeichen2+.
 
WideString, oder was anderes mit Wide... wäre da wohl das Richtige.

DracoBlue 15. Apr 2004 00:32

Re: Was ist das für ein DateiTyp? Zeichen1+chr(0)+Zeichen2+.
 
naja,

wenn ich aber nun einen Datentyp definiere, und diesen mit

Delphi-Quellcode:
record
    string:widestring;
    ...
   end;
definiere, weiss ich doch noch nicht wie große der widestring ist, den ich lesen werde.

Gibt es dafür vielleicht ne allgemein-Lösung?

Mfg, Draco

Akut-Programming 15. Apr 2004 06:57

Re: Was ist das für ein DateiTyp? Zeichen1+chr(0)+Zeichen2+.
 
Zitat:

Zitat von DracoBlue
definiere, weiss ich doch noch nicht wie große der widestring ist, den ich lesen werde.

Gibt es dafür vielleicht ne allgemein-Lösung?

Mfg, Draco

Meinst du vielleicht sowas??
Delphi-Quellcode:
var
   String1: WideString;
   i: integer;
begin
  for i:=0 to Length(String1)
  do begin
     ShowMessage('Hallo');
end;
Gruß,

DracoBlue 15. Apr 2004 08:42

Re: Was ist das für ein DateiTyp? Zeichen1+chr(0)+Zeichen2+.
 
Delphi-Quellcode:

type tghdaten=packed record

          // mein Problem :
          // Ein String, der beliebig lang ist, und so aussieht : Zeichen+chr(0)+Zeichen2+chr(0)+...
                SectionName:string;
          // Weiss hier vor dem lesen nicht wie lang der ist.


                BlockCount:integer;
              end;

 var ghdaten:tghdaten;
 var tms:tmemorystream;

 begin
  tms:=tmemorystream.create;
  tms.LoadFromFile('meinegh.dat');
  tms.Read(ghdaten,sizeof(ghdaten));
 end;

neolithos 15. Apr 2004 08:52

Re: Was ist das für ein DateiTyp? Zeichen1+chr(0)+Zeichen2+.
 
Der UniCode-String wird wahrscheinlich mit zwei #0 Zeichen abgeschlossen. Dadaurch weist du nie wie lang der String ist.

Also musst du die Zeichenkette separat Zeichen für zeichen einlesen.

DracoBlue 15. Apr 2004 09:06

Re: Was ist das für ein DateiTyp? Zeichen1+chr(0)+Zeichen2+.
 
hatte ich mir schon gedacht.

Mfg, DracoBlue

[Frage damit erledigt]

neolithos 15. Apr 2004 10:36

Re: Was ist das für ein DateiTyp? Zeichen1+chr(0)+Zeichen2+.
 
Ist es vielleicht so dass für Section eine gewisse Anzahl an Bytes reserviert ist?

DracoBlue 15. Apr 2004 10:42

Re: Was ist das für ein DateiTyp? Zeichen1+chr(0)+Zeichen2+.
 
Am Anfang der Datei, wird bereits gesagt wo die einzelnen Einträge stehen jedoch nicht wie lang sie sind.

Das Rauslesen ist mit dem abschließenden chr(0) kein Problem.

Wenn ich die Datei jedoch selbst erzeugen möchte bzw. Elemente hinzufügen will komme ich zu Problemen.

Mfg, DracoBlue


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz