Autor Beitrag
schulcoder
Hält's aus hier
Beiträge: 13



BeitragVerfasst: 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!

ausblenden 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); //Fehlermakierung
      Closefile(fLine);
     end;
    end;


wo liegt mein Fehler?

Vielen Dank für jegliche Hilfe!! :)
Saubäär
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 376



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mi 13.06.07 17:38 
was heisst das jetzt?

danke! :)
schulcoder Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 676

Win XP Professional
Delphi 7 PE, Delphi 3 PRO
BeitragVerfasst: 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):

ausblenden 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:\...');  // <-- hier der komplette Pfad + Filename zu deiner Textdatei
  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:

ausblenden 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:\...'); // <-- wo soll die Datei abgelegt werden?
  Rewrite(F);
  writeln(F, str1);
  writeln(F, str2);
  CloseFile(F);
end;


Gruß

Calculon
--
schulcoder Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mi 13.06.07 18:55 
erst ging es und jetzt meldet er das selbe.. langsam bin ich frustriert... :(
Calculon
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 676

Win XP Professional
Delphi 7 PE, Delphi 3 PRO
BeitragVerfasst: Mi 13.06.07 18:59 
Was meldet er denn?
schulcoder Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 765
Erhaltene Danke: 130



BeitragVerfasst: Mi 13.06.07 19:18 
Versuchs mal so:
ausblenden Delphi-Quelltext
1:
if NOT FileExists(sPfad) then					

Du löschst nämlich die Datei, wenn Sie existiert.

ub60
Calculon
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 676

Win XP Professional
Delphi 7 PE, Delphi 3 PRO
BeitragVerfasst: 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:

ausblenden 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);  // <-- unter dieser Bedingung wird die Datei nicht mehr "geclosed",
     end             // was bei erneutem Zugriff zu Fehlern führt
    else 
     begin 
      Reset(fLine);          // und den Teil kapier' ich gar nicht
      Write(fLine, sBatch);
      Closefile(fLine); 
     end; 
    end;

schulcoder Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mi 13.06.07 19:44 
ich hab ihn acuh neu geschrieben :)

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure TfProperty.bOkClick(Sender: TObject);
 var
  fLine: TextFile;
  sBatch, sPfad: String;
   begin
   sPfad:='../Extras/Copy.bat';
   sBatch:='xcopy noten '+eFind.Text;
   // Batch schreiben
   AssignFile(fLine, sPfad);
    Rewrite(fLine); //Fehlermakierung
    writeln(fLine, sBatch);
   CloseFile(fLine);

   // Batch ausführen
   if FileExists(sPfad) then
    begin
     shellExecute(Handle,'open','../Extras/Copy.bat', nil, nil, SW_SHOWNORMAL);
     fproperty.Destroy;
     Anmeldung.fAnmeldung.Show;
    end;
   end;
Calculon
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 676

Win XP Professional
Delphi 7 PE, Delphi 3 PRO
BeitragVerfasst: Mi 13.06.07 19:58 
Wenn der Ordner 'Extras' im Verzeichnis der Exe-Datei liegt dann musst du das unter Windows so machen:

ausblenden Delphi-Quelltext
1:
sPfad:= ExtractFilePath(Application.ExeName) +  'Extras\Copy.bat';					


:gruebel: War das nicht Linux mit '/Extras/..'?

Gruß

Calculon
--
schulcoder Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mi 13.06.07 20:21 
dacht ich auch schon, aber es komtm exakt die selbe fehlermeldung.. verdammte axt!
Calculon
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 676

Win XP Professional
Delphi 7 PE, Delphi 3 PRO
BeitragVerfasst: Mi 13.06.07 20:25 
Hast du den Ordner Extras überhaupt angelegt? Bei mir funktionierts.
schulcoder Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mi 13.06.07 20:30 
ja na klar der ist angelegt... warum geht das bei mir nicht? hab delphi 5
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Mi 13.06.07 20:33 
Fällt das hier tatsächlich keinem auf ? :shock: Pfadnamen lauten so : C:\WINDOWS und nicht so : C:/WINDOWS. Man beachte den kleinen Unterschied. :lol: :mrgreen:

_________________
Gruß
Hansa
schulcoder Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mi 13.06.07 20:57 
äh, so hat ich es ja auch erst ^^
Timosch
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: 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... :D

_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
schulcoder Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mi 13.06.07 21:31 
ich kapier trz nicht, weshalb das immer noch fehleranfällig ist ..