![]() |
Re: Fehler beim Speichern???
Was gibt denn FileSize aus?
|
Re: Fehler beim Speichern???
was is FileSize? :wiejetzt:
|
Re: Fehler beim Speichern???
FileSize und F1 drücken dann kommt die Erklärung.
Grüße Klaus |
Re: Fehler beim Speichern???
Hallo,
wie sieht Deine Datei aus, häng' sie hier mal bitte dran. Enthält die Datei für jeden Eintrag eine Zeile? Dann muss Du beim Lesen den Zeilenvorschub berücksichtigen. Beim Lesen von Strings musst Du berücksichtigen, dass das 0. Byte die Längenangabe zum String enthält. Für string[20] müssen in der Datei daher 21 Byte zur Verfügung stehen bzw. für einen Eintrag 63 Byte. Versuch es mal bitte mit 'ner geänderten Typedefinition für TEintrag:
Delphi-Quellcode:
Wenn die Datei nun ein "einzeler" ist, wollte alle 60 Byte ein neuer Eintrag stehen und mit Deiner Routine zu lesen sein.
type TEintrag = record
zahl: array[1..20] of Char; zeit: array[1..20] of Char; datum: array[1..20] of Char; end; Filesize sagt Dir, wieviele Sätze Du in Deiner Datei hast. Mach mal bitte hinter das Reset(Datei) ein:
Delphi-Quellcode:
und prüf', ob das Ergebnis mit der von Dir erwarteten Anzahl von Einträgen in der Datei übereinstimmt.
ShowMessage(IntToStr(FileSize(datei)));
|
Re: Fehler beim Speichern???
er gibt die message 10 ( wie die zeilen in dem stringgrid) aus... wie wandel ich dann string in char um?
Danke für die Hilfe |
Re: Fehler beim Speichern???
Hallo,
von String nach Array Of Char sollte so gehen:
Delphi-Quellcode:
s ist hier der von Dir zu verwendende String.
// von string nach array
copymemory(@Eintrag.zahl[low(Eintrag.zahl)],@s[1],sizeof(Eintrag.zahl)); |
Re: Fehler beim Speichern???
Oder auch mit der Funktion StrPCopy.
|
Re: Fehler beim Speichern???
Zitat:
Delphi-Quellcode:
StrPCopy funktioniert nur, wenn ein Array bei 0 beginnt.
type Teintrag = record
zahl: array[1..20] of char; zeit: array[1..20] of char; datum: array[1..20] of char; end; var s : String; Eintrag : TEintrag; begin s := '1000,00'; StrPCopy(Eintrag.Zahl,s); end; [Fehler] Unit1.pas(57): Inkompatible Typen: 'Array' und 'PAnsiChar'
Delphi-Quellcode:
Okay, dass sollte in diesem Fall hier kein Problem sein.
type Teintrag = record
zahl: array[0..19] of char; zeit: array[0..19] of char; datum: array[0..19] of char; end; |
Re: Fehler beim Speichern???
wie is das dann auf mein problem bezogen? Ich versteh es nicht(bin kein Pro in Sachen Delphi) :(
|
Re: Fehler beim Speichern???
Hallo,
Zitat:
Wenn in einem Array der Index bei 0 beginnt, kann man mit StrPCopy dem Array einen String zuweisen, andernfalls muss man es so machen:
Delphi-Quellcode:
Da ich Deine ursprüngliche Definition von string[20] auf array[1..20] of char geändert hatte, funktioniert StrPCopy nicht. Wenn Du hergehst und aus array[1..20] of char überall array[0..19] of char machst, dann kannst Du StrPCopy benutzen, was den Quelltext sicherlich lesbarer macht. Falls Du inzwischen Dein Problem gelöst haben solltest, dann lass das Programm so wie es ist.
copymemory(@Eintrag.zahl[low(Eintrag.zahl)],@s[1],sizeof(Eintrag.zahl));
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:20 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