Einzelnen Beitrag anzeigen

Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: Array of Char in String umwandeln

  Alt 1. Nov 2013, 12:42
Warum erzeugst Du Dir nicht einfach einen entsprechenden Record und machst den blockread direkt dahin?
Danke für den Tipp!
Dieser ist zwar mehr oder weniger ein Workaround und würde bei riesigen Dateien nichts bringen. Der Tipp hat aber den Denkansatz gegeben. Denn als es mit Array einigermaßen klappte (String war aus welchem Grund auch immer nur 8 Zeichen lang), wollte ich es direkt mit Seek und einem String probieren. Das knallte wieder und es fiel mir wie Schuppen von den Augen:
Wenn ich S als String definiere, hat er eine Länge von 0. Das muss eine Zugriffsverletzung geben, weil move in nicht reservierten Speicher 30 Zeichen schreiben will. Ein SetLength(Str, 30); hat das Problem endgültig gelöst. Da muss man aber auch erstmal drauf kommen...

Ich mache es jetzt ohne Umweg und lese ohne Array gleich direkt in den String. Das ist am alleroberelegantesten.

[edit]
Himitsu war schneller.
Mich verblüfft bloß, dass hier im Forum einige Themen mit String und move zu finden sind, mir aber das SteLength(); völlig durch die Lappen gegangen war.
[/edit]

Gruß & Dank, Alex
Alex Winzer
  Mit Zitat antworten Zitat