![]() |
Re: untypisierte dateien
Zitat:
[edit=mkinzler]Tag gefixt Mfg, mkinzler[/edit] |
Re: untypisierte dateien
@DeddyH
Danke! war mir entfallen. Zitat:
Gruß K-H |
Re: untypisierte dateien
Zitat:
ich hab einfach einen Record definiert, insgesamt 1024 byte gross, habe die einzelnen Werte die ich brauche definiert(sieht man ja im File wo die stehen, und den Rest wie zb "zeile" gelesen und "weggeworfen". Leider funktioniert das so nicht, wie ich schon oben erwähnte. test habe ich nur testweise gelesen um zu sehen was nach oemtochar "rüberkommt". Endgültig brauche ich nur artnr bezeichnung und preis, welche an festen Stellen im DS stehen. also datensatz.name 25 byte gross, datensatz.nr 3 byte gross und datensatz.preis 8 byte gross. |
Re: untypisierte dateien
Zitat:
bis auf die Umlaute krieg ich die richtige Bezeichnung, aber oemtochar bringt leider nix :-( |
Re: untypisierte dateien
Liste der Anhänge anzeigen (Anzahl: 2)
Ich hab mal alles bis auf die Bezeichnung aus der Datei rausgeworfen und mit folgendem Code getestet:
Delphi-Quellcode:
Sieht einwandfrei aus (siehe Anhang).
var sl: TStringlist;
s: string; begin sl := TStringlist.Create; try sl.LoadFromFile('E:\muster.txt'); s := sl[0]; OemToChar(PChar(s),PChar(s)); ShowMessage(s); finally sl.Free; end; end; |
Re: untypisierte dateien
Zitat:
|
Re: untypisierte dateien
Vielleicht SetLength() für den Zielstring vergessen? Ich benutze ja 2 mal dieselbe Stringvariable im Gegensatz zu Deinem Code.
|
Re: untypisierte dateien
Zitat:
ich danke euch bis hierhin, melde mich sicher nochmal. |
Re: untypisierte dateien
hallo zusammen,
das mit den Umlauten funktioniert zwar noch nicht, aber das ist erst mal zweitrangig. Das Einlesen des einen DS aus dem Beispiel funktioniert und zwar folgendermassen:
Delphi-Quellcode:
Die vollständige Datei hat aber 557056 byte , also 544 DS.
tMyrecord = packed record
f1 : array [0..$36] of byte; artnr: array [$37..$3C] of char; f2 : array [$3D..$4A] of byte; name : array [$4B..$63] of char; trenn1: byte; name2 : array [$65..$7D] of char; f3 : array [$7F..$DF] of byte; preis : array [$E0..$E6] of char; rest : array [$E7..$3FF] of char; end; var buffer : array [0..1024] of char; myrecord : tMyrecord absolute buffer; gelesen : integer; FS: TFileStream; test1, test2, test3, test4: string; begin fs:=tfilestream.create('muster.txt', fmOpenRead); gelesen:=fs.read(buffer,sizeof(buffer)); test1:= myrecord.artnr ; test2:= myrecord.name ; test3:= myrecord.name2 ; test4:= myrecord.preis ; die lassen sich zwar vollständig in den Buffer lesen, (buffer : array [0..557056] of char;) aber wie komm ich an die positionen ran? ne while eof geht ja auchnicht :-( EDIT: ich könnte ja 544 files draus machen, aber sicher geht das einfacher, oder? Danke für eure Hilfe. |
Re: untypisierte dateien
Guten Morgen,
der "Lesezeiger, bzw. Leseposition" ändert sich nach jedem Lesevorgang. Liest Du jeweils immer einen Datensatz ein steht der Lesezeiger auf dem nächsten Byte hinter dem Datensatz. Liest Du einen weiteren Datensatz fängt der Lesevorgang an der Position an wo der Lesezeiger hinzeigt. Die Anzahl der Datensätze erhälst Du so: Stream.size div Datensatzgröße. Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:44 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