![]() |
Problem mit Stream
Huhu :)
Ich hab grad ein Problem: Ich habe eine Textdatei, die so aufgebaut ist:
Code:
Jetzt will ich jeweils die zahl vor dem "-" in ein 2D-Array einlesen, wobei eben [x,y] so ist, dass x der zeilennummer entspricht und y, die wievielte ziffer das in der zeile ist.
1-0,1-0,1-0,1-0, .... (Das ganze 80 Mal)
1-0,1-0,1-0,1-0, .... (80 Mal...) und hier nach unten hin das ganze Spiel auch 80 mal Bei folgendem Code bekomm ich aber einen Stream-lesefehler :( Kann mir jemand sagen was ich falsch mache?
Delphi-Quellcode:
MfG,
procedure LoadMap(FN: string);
var FileS: TStream; Buf, Save: String; CPos, Spos: Integer; x,y,j: integer; begin try FileS := TFileStream.Create(FN, fmOpenWrite); FileS.ReadBuffer(Buf, FileS.Size); x := 0; y := 0; for j := 0 to (80*80) do begin Inc(y); if y=80 then begin Inc(x); y := 0; end; CPos := pos(',',Buf); Save := Copy(Buf, 1, CPos-1); SPos := pos('-',Save); uMain.Map1.Fields[x,y] := StrToInt(Copy(Save, 1, SPos-1)); Delete(Buf, 1, CPos); end; finally FileS.Free; end; end; air |
Re: Problem mit Stream
Ich glaub du hast da ein paar fehler
Delphi-Quellcode:
FileS := TFileStream.Create(FN, fmOpenWrite); //das muss fmOpenRead heisen
FileS.ReadBuffer(Buf, FileS.Size); //und wenn deine Datei mehr als 255 Zeichen hat gibst auch mecker |
Re: Problem mit Stream
Mit folgender Funktion wird die Sache ganz einfach:
Delphi-Quellcode:
Ich kann nur empfehlen, obige Funktion dauerhaft auf Platte oder im Gedächtnis zu speichern!
// Kopiert aus der JCL
function FileToString(const FileName: AnsiString): AnsiString; var fs: TFileStream; len: Integer; begin fs := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite); try len := fs.Size; SetLength(Result, len); if len > 0 then fs.ReadBuffer(Result[1], len); finally fs.Free; end; end; @franktron: du hast vergessen, für den String "buf" Speicherplatz zu reservieren. |
Re: Problem mit Stream
Ah okay, nu geht es :stupid: :)
Danke ;) air |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz