![]() |
Wie erstelle ich ein aktuelles Dateiverzeichnis
Hallo,
ich habe ein Problem. ich möchte gerne eine Textdatei in ein Unterverzeichnis schreiben, doch das geht so ohne weiteres nicht, weil ich dazu einen gültige Pfad erstellen muß ? :gruebel: Ich habe folgenden Code
Delphi-Quellcode:
beim Programmablauf erscheint dann der Fehler Programmname nicht gültig
{$i-}
mkdir('c:\jowisoft'); mkdir('c:\jowisoft\kasse'); mkdir('c:\jowisoft\kasse\kassendaten'); {$i+} assignfile(f,'c:\jowisoft\kasse\kassendaten\bondaten.txt'); rewrite(f); for i:=1 to 6 do writeln(f,bonzeile[i]); writeln(f,bonstadt); writeln(f,bonmwst); closefile(f); {$i+} Wer kann mir helfen ? [edit=SirThornberry]Delphi-Tags gesetzt - Mfg, SirThornberry[/edit] |
Re: Wie erstelle ich ein aktuelles Dateiverzeichnis
|
Re: Wie erstelle ich ein aktuelles Dateiverzeichnis
Hallo,
Danke für den Tip, aber die Ordner sind bereits erstellt. Der Quelltext will einfach die Datei nicht in die unterordner hineinschreiben. Wenn ich den gleichen Quellcode in das Hauptverzeichnis schreibe funktioniert es. :roll: |
Re: Wie erstelle ich ein aktuelles Dateiverzeichnis
Zitat:
Wenn die Ordner bereits angelegt sind, vielleicht stimmen dann die Rechte nicht? Darfst Du (Deine Software) in diese Ordner schreiben, Dateien anlegen, Dateien verändern? Zweite Idee: Versuch mal bei AssignFile die Backslashes als Doppel-Backslash anzugeben AssignFile (..., 'C:\\temp\\sonstwas\datei,txt'); |
Re: Wie erstelle ich ein aktuelles Dateiverzeichnis
Zum Ordner-Anlegen:
![]() |
Re: Wie erstelle ich ein aktuelles Dateiverzeichnis
Zitat:
|
Re: Wie erstelle ich ein aktuelles Dateiverzeichnis
Hallo,
Zitat:
Also: folge dem Vorschlag von CCRDude. Gruß Hawkeye |
Re: Wie erstelle ich ein aktuelles Dateiverzeichnis
Hallo Willi1960,
Vielleicht hilft dir das weiter:
Delphi-Quellcode:
Fehlerbehandlung usw. fehlen.
var
OrdnerName: String; DateiName: String; f: TextFile; begin OrdnerName:= 'h:\jowisoft\kasse\kassendaten\'; DateiName:= 'bondaten.txt'; ForceDirectories(OrdnerName); AssignFile (f, OrdnerName+DateiName); {$I-} Rewrite (f); {$I+} If IOResult = 0 then begin Writeln (f, 'Test'); // Deine Daten closefile(f); end; end; Bis bald Chemiker |
Re: Wie erstelle ich ein aktuelles Dateiverzeichnis
Hallo,
funktioniert leider auch nicht vielleicht muß ich mit chdir das aktuelle verzeichnis wecheln, ich habe das auch schon probiert, geht aber auch nicht. und forcedirectoriers erzeugt sofort eine fehlermeldung :wall: |
Re: Wie erstelle ich ein aktuelles Dateiverzeichnis
was für ne delphi version benutzt du??
|
Re: Wie erstelle ich ein aktuelles Dateiverzeichnis
hallo
ich habe das jetzt mal alles abgeändert aber es will immer noch nicht funktionieren
Delphi-Quellcode:
[edit=MrSpock]Code Tag geschlossen. Mfg, MrSpock[/edit]procedure TForm3.Button2Click(Sender: TObject); var f: TextFile; i: integer; begin {$I-} mkdir('c:\jowisoft'); mkdir('c:\jowisoft\kasse'); mkdir('c:\jowisoft\kasse\kassendaten'); {$i+} if ioresult=0 then i:=i+1; {dient einfach nur zur abfrage von ioresult} AssignFile (f,'c:\jowisoft\kasse\kassendaten\bondaten.txt'); {$I-} Rewrite (f); {$I+} If (IOResult = 0) or (ioresult <>0) then begin Writeln (f, 'Test'); closefile(f); end; end; |
Re: Wie erstelle ich ein aktuelles Dateiverzeichnis
Delphi-Quellcode:
procedure TForm3.Button2Click(Sender: TObject);
var f: TextFile; i: integer; begin {$I-} mkdir('c:\jowisoft'); mkdir('c:\jowisoft\kasse'); mkdir('c:\jowisoft\kasse\kassendaten'); {$i+} if ioresult=0 then i:=i+1; {dient einfach nur zur abfrage von ioresult} //wozu das??? hat keinen sinn AssignFile (f,'c:\jowisoft\kasse\kassendaten\bondaten.txt'); {$I-} Rewrite (f); {$I+} If (IOResult = 0) or (ioresult <>0) then //was soll denn das?? wenn ioresult = 0 oder <> 0 dann mache... das blödsinn begin Writeln (f, 'Test'); closefile(f); end; end; |
Re: Wie erstelle ich ein aktuelles Dateiverzeichnis
natürlich stelle ich das auf ioresult =0 um, aber das programm kommt ja gar nicht so weit bei rewrite steigt das programm aus b.z.w die prozedur wird nicht weiter fortgeführt
|
Re: Wie erstelle ich ein aktuelles Dateiverzeichnis
Delphi-Quellcode:
uses
sysutils; // <-- das muss unbedinkt oben in die uses klausel procedure TForm3.Button2Click(Sender: TObject); const thepath = 'c:\jowisoft\kasse\kassendaten\'; thefile = 'bondaten.txt'; var F: TextFile; S: string; begin if not DirectoryExists(thepath) then ForceDirectories(thepath); try AssignFile(F, thepath + thefile); Reset(F); //reset wenn die datei "bondaten.txt" bereits vorhanden ist und rewrite wenn sie neu erstellt werden soll Writeln(F, 'Test'); finally CloseFile(F); end; end; ansonnsten kann ich dir auch nur emfehlen hier mal ein wenig in der codelib rum zu schnüffeln oder was sowieso auch gerade in solchen fällen gut ist, mal die delphi hilfe benutzen... da steht das auch alles drin, mit bsp und quellcode |
Re: Wie erstelle ich ein aktuelles Dateiverzeichnis
Hallo Willi,
wenn dein ReWrite() schon nicht ausgeführt wird, dann solltest du mal den FehlerCode anschauen. Vielleicht hast du die Datei ja zur Erfolgskontrolle in einem Editor offen, was den exklusiven Zugriff verhindert. Statt TextFile kannst du auch problemlos mit dem moderneren FileStream arbeiten:
Delphi-Quellcode:
Getippt und nicht getestet.
resourcestring
JOWI_DIR = 'C:\JoWiSoft\Kasse\KassenDaten'; JOWI_FILE = 'BonDaten.txt'; procedure WriteLine(s: TStream; const line: string); begin s.Write(line[1], Length(line)); s.Write(sLineBreak[1], Length(sLineBreak)); end; procedure TDemoForm.TestButtonClick(Sender: TObject); var s: TStream; fn: TFileName; begin if not DirectoryExists(JOWI_DIR) then ForceDirectories(JOWI_DIR); fn := IncludeTrailingPathDelimiter(JOWI_DIR) + JOWI_FILE; s := TFileStream.Create(fn, fmCreate); WriteLine(s, 'success finally'); s.Free; end; Grüße vom marabu |
Re: Wie erstelle ich ein aktuelles Dateiverzeichnis
Hallo Willi1960,
wir kommen hier so nicht weiter. Beantworte erst mal folgende Fragen! 1. Delphi-Version? Zitat:
Zitat:
3.Stehen noch Laufzeitfehler an? Zitat:
Zitat:
5. Welches Windows? Bis bald Chemiker |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:59 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