Forum: Object-Pascal / Delphi-Language
Delphi
by devidespe,
18. Jun 2008
Jetzt muss ich hierzu noch einmal eine (möglicherweise unsinnige) Frage stellen:
Wenn ich nun anstatt
const
coFileData = '#abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ+';
coFileData als STRING deklariere und in der ersten Funktionszeile den oben dargestellten Inhalt zuweise, wird mir jedesmal vor dem Text ein @ mit in die Datei geschrieben.
Forum: Object-Pascal / Delphi-Language
Delphi
by devidespe,
17. Jun 2008
Tatsächlich, mit folgender Zeile funktioniert es:
DateiStream.ReadBuffer(ReadMuster, lReadCount);
Obwohl ich den Sinn, ein Zeichen eines Strings zu verwenden, nicht ganz verstehe. Vielleicht muss ich das auch nicht. Thx for the help.
Forum: Object-Pascal / Delphi-Language
Delphi
by devidespe,
17. Jun 2008
In der Hilfe wird der Rückgabepuffer mit "var Buffer;" deklariert, woraus ich schließe, dass es sich auch um einen String handeln kann. Ich hatte davor mit BlockRead gearbeitet und konnte eben genau 64 Byte einlesen. Hier scheint das komplizierter zu sein.
Wenn ich die brisante Zeile entferne, in welcher der String wieder auf '' gesetzt wird, dann wird tatsächlich etwas ausgelesen. Allerdings...
Forum: Object-Pascal / Delphi-Language
Delphi
by devidespe,
17. Jun 2008
Also richtig will das noch nicht funktionieren. Mein bisheriger Code:
VAR DateiStream : TStream;
lBytesToRead,
lReadCount : Int64;
ReadMuster : STRING;
CONST TestMuster = '#abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ+';
BEGIN
TRY
Forum: Object-Pascal / Delphi-Language
Delphi
by devidespe,
17. Jun 2008
Danke, das Beispiel funktioniert einwandfrei.
Nun habe ich bspw. den Fall, die zuvor geschriebenen Testmusterdaten wieder lesen und überprüfen zu wollen, wozu ich einerseits die Create-Zeile wiefolgt abändere:
lStream := TFileStream.Create(AFilename, fmOpenRead);
und andererseits eine lokale Stringvariable namens ReadMuster deklariere sowie ReadBuffer einsetze:
CONST TestMuster =...
Forum: Object-Pascal / Delphi-Language
Delphi
by devidespe,
17. Jun 2008
Ja, das war wohl der ausschlaggebende Punkt.
Nun habe ich aber das Problem, nicht etwa einen String wie lFileData mit identischen Zeichen (hier #55, also die Ziffer 7), sondern einem Testmuster schreiben zu wollen. Hierfür habe ich ein 64 Zeichen großes Muster defininiert:
CONST TestMuster = '#abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ+';
Wenn ich nun aber TestMuster...
Forum: Object-Pascal / Delphi-Language
Delphi
by devidespe,
17. Jun 2008
Du meinst bestimmt WriteBuffer, da ich kein WriteFile entdecken kann.
Wie erklärst Du Dir die Fehlermeldung beim Compilieren ?
Übrigens nette Signatur, ich hätte aber an 3 Stellen jeweils 20h eingefügt.
Forum: Object-Pascal / Delphi-Language
Delphi
by devidespe,
17. Jun 2008
Wenn ich Deine Funktion "DateiSchreiben" direkt übernehmen möchte, gibt es 2 Probleme. Das erste ist, dass der eigentliche Rückgabewert der Funktion während der Deklaration fehlt, es müsste also heißen:
function DateiSchreiben(const AFilename: string; const AFileSize: Int64) : Boolean;
Das 2. Problem ist die Zeile mit WriteBuffer, wobei mir Delphi jedesmal den folgenden...