![]() |
Fehler bei write / writeln in eine Datei
Meine Procedure:
Delphi-Quellcode:
Die rufe ich wie folgt auf:
procedure DateiUeberschreiben(pfad: string; groesse: integer);
var i, a, zufall: integer; zeichen: string; begin for a:= 1 to 10 do begin assign(datei,pfad); rewrite(datei); for i:= 1 to groesse do begin zufall:=random(15)+1; if zufall= 1 then zeichen:='@'; if zufall= 2 then zeichen:='t'; if zufall= 3 then zeichen:='ö'; if zufall= 4 then zeichen:='+'; if zufall= 5 then zeichen:='~'; if zufall= 6 then zeichen:='*'; if zufall= 7 then zeichen:='#'; if zufall= 8 then zeichen:='w'; if zufall= 9 then zeichen:='d'; if zufall= 10 then zeichen:='b'; if zufall= 11 then zeichen:=' '; if zufall= 12 then zeichen:=']'; if zufall= 13 then zeichen:='3'; if zufall= 14 then zeichen:='|'; if zufall= 15 then zeichen:='2'; write(datei,zeichen); // Fehlermeldung [Error] Unit1.pas(58): Incompatible types: 'procedure, untyped pointer or untyped parameter' and 'String' // wenn ich das nehme: writeln(datei,zeichen); kommt das: [Error] Unit1.pas(58): Illegal type in Write/Writeln statement end; closefile(datei); end; deletefile(form1.verzeichnis.text); end;
Delphi-Quellcode:
Was mache ich falsch?
procedure TForm1.loeschenClick(Sender: TObject);
begin assignfile(datei,verzeichnis.text); reset(datei); dateiUeberschreiben(verzeichnis.text,filesize(datei)); closefile(datei); end; |
Re: Fehler bei write / writeln in eine Datei
1. write(datei,zeichen);, zeichen ist vom Typ String, musst du in PChar umwandeln.
2. assignfile(datei,verzeichnis.text);, sicher das es .text und nicht .txt heisst? |
Re: Fehler bei write / writeln in eine Datei
Verzeichnis ist vom Typ TEdit. der Pfad im Edit namens Verzeichnis stammt aus einem opendialog. :)
danke. aber wie wandel ich char in string? chartostr ... muss ich mal teten ^^ |
Re: Fehler bei write / writeln in eine Datei
Dann gib doch dem Edit nen Namen womit man den auch erkennen kann... :roll:
PChar(zeichen); |
Re: Fehler bei write / writeln in eine Datei
Zitat:
Delphi-Quellcode:
PChar('string');
|
Re: Fehler bei write / writeln in eine Datei
1.
Du brauchst deinen String nicht in einen PChar verwandeln, da write sehr wohl auch Shortstring und String akzeptiert. 2. In deiner Procedure "DateiUeberschreiben", schreibst Du "assign(datei,pfad);" Was soll das denn bringen? Wäre AssignFile(datei, Pfad) nicht zielführender? 3. In deiner Loeschen Procedure solltest Du bevor due die Ueberschreiben Procedure aufrufst, CloseFile aufrufen und die davor dir die Größe der Datei in einer Variablen speichern. |
Re: Fehler bei write / writeln in eine Datei
Hai Christopher,
mal unabhängig von deinem Problem. Was hälst Du denn von diesem Ansatz um deine ganzen IF-Then Abfragen zu verhindern?
Delphi-Quellcode:
procedure DateiUeberschreiben(pfad: string; groesse: integer);
const myChars: array[1..15] of Char = ('@', 't', 'ö', '+', '~', '*', '#', 'w', 'd', 'b', ' ', ']', '3', '|', '2'); var i, a : integer; zeichen: Char; begin for a := 1 to 10 do begin Assign(datei, pfad); rewrite(datei); for i := 1 to groesse do begin zeichen := myChars[random(15) + 1]; . . . |
Re: Fehler bei write / writeln in eine Datei
Hallo Christopher,
Delphi-Quellcode:
wahrscheinlich hast du datei mit dem Typ file deklariert.
var
datei: TextFile; Weihnachtsgrüße vom marabu |
Re: Fehler bei write / writeln in eine Datei
Zitat:
datei: file ;) Alle anderen Vorschläge nehme ich gerne an. Ich wollte ja erstmal ganz simpel versuchen, eraser (dateien komplett löschen, dass man sie nicht mehr wiederfinden kann :)) nachzuproggen. das war erstmal ein kleiner ansatz. falls ihr für mein programm ein paar ideen habt, könnt ihr ja sie gerne posten. Nich tdenken, dass das gleich in die freeware sparte kommt ^^, denn ich denke, mit meiner methode lassen sich trotzdem dateien wiederfinden. :xmas: |
Re: Fehler bei write / writeln in eine Datei
Zitat:
Marabu hat genau das richtige genannt - genauer lesen... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22: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