| Autor |
Beitrag |
schulcoder
Hält's aus hier
Beiträge: 13
|
Verfasst: Mi 13.06.07 17:25
Hi,
jedes mal wenn ich in die Datei schreiben möchte, kommt bei mir eine Fehlermeldung, dass der Dateiname ungütlig sei. Und dabei wird meine "write" Eigenschaft makiert. Ich versteh das nicht!
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| var fLine: TextFile; sPfad, sBatch: String; begin sPfad:='../Extras/Copy.bat'; sBatch:=eFind.Text;
AssignFile(fLine, sPfad); if FileExists(sPfad) then begin Rewrite(fLine); end else begin Reset(fLine); Write(fLine, sBatch); Closefile(fLine); end; end; |
wo liegt mein Fehler?
Vielen Dank für jegliche Hilfe!! 
|
|
Saubäär
      
Beiträge: 376
|
Verfasst: Mi 13.06.07 17:28
Moin,
ich könnte mir vorstellen, dass die Deklaration "TextFile" nicht mit der Endung "*.bat" klar kommt.
Gruß
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Mi 13.06.07 17:35
Nö, denke nicht, dass es daran liegt. Aber öffnet man TextFiles über Reset nicht Read-Only?
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
|
|
schulcoder 
Hält's aus hier
Beiträge: 13
|
Verfasst: Mi 13.06.07 17:38
was heisst das jetzt?
danke! 
|
|
schulcoder 
Hält's aus hier
Beiträge: 13
|
Verfasst: Mi 13.06.07 17:44
ich möchte ja einfach nur eine batchdatei öffnen bzw erstellen und in diese einen pfad schreiben, der in der textbox angegeben ist. wo liegt das problem bei delphi? ich versteh das nicht
vielen dank leute!
|
|
Calculon
      
Beiträge: 676
Win XP Professional
Delphi 7 PE, Delphi 3 PRO
|
Verfasst: Mi 13.06.07 18:10
| schulcoder hat folgendes geschrieben: | | ich möchte ja einfach nur eine batchdatei öffnen bzw erstellen und in diese einen pfad schreiben, der in der textbox angegeben ist. wo liegt das problem bei delphi? ich versteh das nicht |
Hätte dir jetzt einen coolen Link zu delphi-basics gegeben, aber delphi-basics funzt grad net. Daher kurze Erklärung:
Öffnen zum Lesen (und Ausgabe z.B. in einer Konsole):
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| var F: Textfile; str: string; begin AssignFile(F, 'C:\...'); Reset(F); allocconsole; while not eof(F) do begin readln(F, str); writeln(str); end; closefile(F); write('Press Enter to exit'); readln; freeconsole; end; |
Erstellen und speichern geht so:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| var str1, str2: string; F: Textfile; begin str1 := '1. Satz in der Textdatei!'; str2 := '2. Satz in der Textdatei!'; Assignfile(F, 'C:\...'); Rewrite(F); writeln(F, str1); writeln(F, str2); CloseFile(F); end; |
Gruß
Calculon
--
|
|
schulcoder 
Hält's aus hier
Beiträge: 13
|
Verfasst: Mi 13.06.07 18:55
erst ging es und jetzt meldet er das selbe.. langsam bin ich frustriert... 
|
|
Calculon
      
Beiträge: 676
Win XP Professional
Delphi 7 PE, Delphi 3 PRO
|
Verfasst: Mi 13.06.07 18:59
|
|
schulcoder 
Hält's aus hier
Beiträge: 13
|
Verfasst: Mi 13.06.07 19:15
wieder die fehlermeldung: ungültiger dateiname. erst hab ich die datei mal wieder per hand gelöscht, dann ging es.. - sobald sie existiert geht es aber nicht mehr (imemr die selbe fehlermeldung) dann habe ich sie wieder gelöscht, jetzt geht aber überhaupt nichts mehr, und selber fehler (s.o) mit makierung bei "rewrite" was soll das?
danke wirklich!!
|
|
ub60
      
Beiträge: 765
Erhaltene Danke: 130
|
Verfasst: Mi 13.06.07 19:18
Versuchs mal so:
Delphi-Quelltext 1:
| if NOT FileExists(sPfad) then |
Du löschst nämlich die Datei, wenn Sie existiert.
ub60
|
|
Calculon
      
Beiträge: 676
Win XP Professional
Delphi 7 PE, Delphi 3 PRO
|
Verfasst: Mi 13.06.07 19:28
Und ich dachte auch du hättest deinen Code vom ersten Post von Grund auf neu geschrieben. So wie er dasteht ist er nicht gut:
| schulcoder hat folgendes geschrieben: |
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| AssignFile(fLine, sPfad); if FileExists(sPfad) then begin Rewrite(fLine); end else begin Reset(fLine); Write(fLine, sBatch); Closefile(fLine); end; end; |
|
|
|
schulcoder 
Hält's aus hier
Beiträge: 13
|
Verfasst: Mi 13.06.07 19:44
|
|
Calculon
      
Beiträge: 676
Win XP Professional
Delphi 7 PE, Delphi 3 PRO
|
Verfasst: Mi 13.06.07 19:58
Wenn der Ordner 'Extras' im Verzeichnis der Exe-Datei liegt dann musst du das unter Windows so machen:
Delphi-Quelltext 1:
| sPfad:= ExtractFilePath(Application.ExeName) + 'Extras\Copy.bat'; |
 War das nicht Linux mit '/Extras/..'?
Gruß
Calculon
--
|
|
schulcoder 
Hält's aus hier
Beiträge: 13
|
Verfasst: Mi 13.06.07 20:21
dacht ich auch schon, aber es komtm exakt die selbe fehlermeldung.. verdammte axt!
|
|
Calculon
      
Beiträge: 676
Win XP Professional
Delphi 7 PE, Delphi 3 PRO
|
Verfasst: Mi 13.06.07 20:25
Hast du den Ordner Extras überhaupt angelegt? Bei mir funktionierts.
|
|
schulcoder 
Hält's aus hier
Beiträge: 13
|
Verfasst: Mi 13.06.07 20:30
ja na klar der ist angelegt... warum geht das bei mir nicht? hab delphi 5
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Mi 13.06.07 20:33
Fällt das hier tatsächlich keinem auf ?  Pfadnamen lauten so : C:\WINDOWS und nicht so : C:/WINDOWS. Man beachte den kleinen Unterschied. 
_________________ Gruß
Hansa
|
|
schulcoder 
Hält's aus hier
Beiträge: 13
|
Verfasst: Mi 13.06.07 20:57
äh, so hat ich es ja auch erst ^^
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Mi 13.06.07 21:06
Also im ersten Post sind normale Schrägstriche angegeben, das ist in der Tat falsch. Ich glaub, ich brauch mal ne Brille... 
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
|
|
schulcoder 
Hält's aus hier
Beiträge: 13
|
Verfasst: Mi 13.06.07 21:31
ich kapier trz nicht, weshalb das immer noch fehleranfällig ist ..
|
|