Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi [TStringList] Problem mit einer Datei (bricht zu früh ab) (https://www.delphipraxis.net/77244-%5Btstringlist%5D-problem-mit-einer-datei-bricht-zu-frueh-ab.html)

xZise 16. Sep 2006 19:57


[TStringList] Problem mit einer Datei (bricht zu früh ab)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe folgende Datei (aus dem Editor kopiert):

GBX BUCR 0 $½  0 $) 0 $† 0 $ 0 $ę
’’’’’’’’’’’’’’’’‚  € 7PUDKCVe4OE64UDv8LH9tfCgBa @ Stadium € xZise
hjjghhgklk €? @ Day @ @ Nadeo  ā <header type="challenge" version="TMc.5" exever="0.1.7.5"><ident uid="7PUDKCVe4OE64UDv8LH9tfCgBa" name="hjjghhgklk" author="xZise"/><desc envir="Stadium" mood="Day" type="Race" nblaps="0" price="386" /><times bronze="-1" silver="-1" gold="-1" authortime="-1" authorscore="0"/><deps><dep file="Any\Advertisement\SignRight.bik"/><dep file="Any\Advertisement\SignUp.bik"/><dep file="Any\Advertisement\SignWarning.bik"/><dep file="Any\Advertisement\SignWrongWay.bik"/><dep file="Any\Advertisement\TMSmallExit.bik"/><dep file="Any\Advertisement\Dynamic Ad1.dds"/><dep file="Any\Advertisement\Dynamic Ad2.dds"/><dep file="Any\Advertisement\Dynamic Ad3.dds"/><dep file="Any\Advertisement\pfeil_links.bik"/><dep file="Any\Advertisement\SignLeft.bik"/><dep file="Any\Advertisement\SignDown.bik"/><dep file="Any\Advertisement\PressForward.bik"/><dep file="Any\Advertisement\GamesserverAnim.bik"/><dep file="Any\Advertisement\Gamesserver.dds"/><dep file="Any\Advertisement\FullSpeed.bik"/></deps></header> | 2 
0 $ ’) 0 $ @ Ą$ l  ŽŹśJ ĄOĄ $h* Ą $)ˆ é -] Ķ^ `ź¤l
 0 $PIKSš€?y ĶP} )< J Ü® mĶ|qĄp}\^ €@ 7PUDKCVe4OE64UDv8LH9tfCgBaD @ StadiumY€d
xZise
ThjjghhgklkQ@cDayM$@xdNadeo Tģ I a+` @(t PlatformWallPub2 € ]@h  $ \1mP Any\Advertisement\SignRight.bii h
€7S+@(@œ *A7BUp45(4I +y!74Warning4I(H@,I"8HrongWay4M(Lh9 ˜TMSmallExi5(HN*4ä Dynamic Ad1.ddsp?,i(I t I24I
(HlU ą(•34I (I .”|,M(µ t Lpfeil_links41(I
.I7ƒLef5%(= <Down4}(=.<4 PressForward4M(M.M%3Ģ GamesserverAnim4Y(Y.X4 )X4y(I.H4ĄFullSpee0č^@0p LoopStart„,|l—Č“RoadMainSlopeStrat”  ' @0NTov
C@DD I @|Š GrassClip 
Ą? !0,É"Łę$Ž %øĢ\( &0 $’’’’ŽŹś


Aus dieser Datei wollte ich die Pfade herausfiltern:
<dep file="Any\Advertisement\SignRight.bik"/><dep file="Any\Advertisement\SignUp.bik"/><dep file="Any\Advertisement\SignWarning.bik"/><dep file="Any\Advertisement\SignWrongWay.bik"/><dep file="Any\Advertisement\TMSmallExit.bik"/><dep file="Any\Advertisement\Dynamic Ad1.dds"/><dep file="Any\Advertisement\Dynamic Ad2.dds"/><dep file="Any\Advertisement\Dynamic Ad3.dds"/><dep file="Any\Advertisement\pfeil_links.bik"/><dep file="Any\Advertisement\SignLeft.bik"/><dep file="Any\Advertisement\SignDown.bik"/><dep file="Any\Advertisement\PressForward.bik"/><dep file="Any\Advertisement\GamesserverAnim.bik"/><dep file="Any\Advertisement\Gamesserver.dds"/><dep file="Any\Advertisement\FullSpeed.bik"/>


Dazu habe ich mir folgenden Code geschrieben:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  slTrack : TStringList;
begin
  if odTrack.Execute then begin
    slTrack := TStringList.Create;
    slTrack.LoadFromFile(odTrack.FileName);
    {...}
  end;
end;
Ergebnis ist:
Zitat:

slTrack[0] = 'GBX'#6
slTrack[1] = Delphi exception EStringListError at $629F949
Ich habe die Datei mal angehängt, damit ihr sie euch mal angucken könnt!

mkinzler 16. Sep 2006 19:59

Re: [TStringList] Problem mit einer Datei (bricht zu früh ab
 
Es scheint so als ob .loadFromFile ein EOF erkennt.

xZise 16. Sep 2006 20:07

Re: [TStringList] Problem mit einer Datei (bricht zu früh ab
 
Könntest du sagen was ein EOF ist?

(Ich tippe mal auf "End of File"...)

mkinzler 16. Sep 2006 20:08

Re: [TStringList] Problem mit einer Datei (bricht zu früh ab
 
Zitat:

Zitat von xZise
Könntest du sagen was ein EOF ist?

(Ich tippe mal auf "End of File"...)

Ja.

xZise 16. Sep 2006 20:16

Re: [TStringList] Problem mit einer Datei (bricht zu früh ab
 
Und wie kann ich es denn öfnfnen, wie der Editor? Der hat es ja immerhin geschafft :D

mkinzler 16. Sep 2006 20:19

Re: [TStringList] Problem mit einer Datei (bricht zu früh ab
 
Versuch mal die datei als Binärdatei zu behandeln und lade sie per Stream oder in einen Buffer.

Zacherl 16. Sep 2006 20:20

Re: [TStringList] Problem mit einer Datei (bricht zu früh ab
 
Genau ... eine Binärdatei sollte man nicht als Strings laden. Ein File oder MemoryStream dürfte das Richtige sein.

Florian

xZise 16. Sep 2006 20:55

Re: [TStringList] Problem mit einer Datei (bricht zu früh ab
 
Okay... Ich habe es so gemacht, bekomme aber eine nette AV. (Habe bisher noch nicht mit Streams gearbeitet)

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  fsStream : TFileStream;
  Text : string;
begin
  if odTrack.Execute then begin
    fsStream := TFileStream.Create(odTrack.FileName, fmOpenRead or fmShareDenyWrite);
    try
      fsStream.Seek(1, soFromBeginning);
      fsStream.Read(Text, fsStream.Size - 1);
      Showmessage(Text[1]);
    finally
      fsStream.Free;
    end;
  end;
end;

Zacherl 16. Sep 2006 20:58

Re: [TStringList] Problem mit einer Datei (bricht zu früh ab
 
Das ist ja auch wieder nicht Sinn der Sache, wenn du den Buffer doch wieder in einen String lädst :wink:
Diese Funktion sollte dir helfen: http://www.florianbernd.pytalhost.de...pid=30#post_30 (ist zwar nicht ganz das, was du suchst, aber damit kann man was basteln)

Florian

xZise 16. Sep 2006 21:03

Re: [TStringList] Problem mit einer Datei (bricht zu früh ab
 
Ich verstehe aber irgendwie nicht den unterschied zwischen einen "array [0..10000] of Char" und einem "string"...

Weil, wie man der Datei entnehmen kann, gibt es das Suchwort öfters...


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:45 Uhr.
Seite 1 von 3  1 23      

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