AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler bei REWRITE

Ein Thema von Chrissi91 · begonnen am 8. Okt 2005 · letzter Beitrag vom 9. Okt 2005
Antwort Antwort
Seite 4 von 7   « Erste     234 56     Letzte »    
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#31

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 17:02
Nachtrag:

Delphi-Quellcode:
procedure TForm2.BitBtn1Click(Sender: TObject);
var
datei, datei2, datei3, datei4, datei5: textfile;
hilf: string;
begin
 if (combobox1.text='')or
    (edit1.text='') or
    (edit2.text='')then
      begin
       showmessage('Bitte geben Sie Anrede, Vor - und Nachnamen an, um den Datensatz speichern zu können.');
      end else
      begin
       if fileexists(edit1.text+' '+edit2.text+'.txt') then
        begin
         showmessage('Achtung! Es existiert schon ein Eintrag unter diesem Namen! Abbruch ...');
         form2.visible:=false;
         form1.Visible:=true;
         combobox1.Text:='';
         edit1.text:='';
         edit2.text:='';
         edit3.text:='';
         edit4.text:='';
         edit5.text:='';
         edit6.text:='';
         edit7.text:='';
         edit8.text:='';
         edit9.text:='';
         edit10.text:='';
         memo1.Text:='';
        end else
        begin
         assignfile(datei,edit1.text+' '+edit2.text+'.txt');
         rewrite(datei);
         writeln(datei,combobox1.text);
         writeln(datei,edit1.text);
         writeln(datei,edit2.text);
         writeln(datei,edit3.text);
         writeln(datei,edit4.text);
         writeln(datei,edit5.text);
         writeln(datei,edit6.text);
         writeln(datei,edit7.text);
         writeln(datei,edit8.text);
         writeln(datei,edit9.text);
         writeln(datei,edit10.text);
         writeln(datei,memo1.text);
         closefile(datei);
        end;
       if fileexists('Eintrage.txt') then
        begin
         assignfile(datei2,'Eintrage');
         reset(datei2);
         readln(datei2,hilf);
         closefile(datei2);
          if hilf = 'then
           begin
            deletefile('Eintrage.txt');
            assignfile(datei3,'Eintrage.txt');
            rewrite(datei3);
            writeln(datei3,edit1.Text+' '+edit2.Text);
            closefile(datei);
           end else
           begin
            assignfile(datei4,'Eintrage.txt');
            append(datei4);
            writeln(datei4,edit1.Text+' '+edit2.Text);
            closefile(datei4);
           end;
        end else
        begin
         assignfile(datei5,'Eintrage.txt');
         rewrite(datei5);
         writeln(datei5,edit1.Text+' '+edit2.Text);
         closefile(datei5);
        end;

combobox1.Text:='';
edit1.text:='';
edit2.text:='';
edit3.text:='';
edit4.text:='';
edit5.text:='';
edit6.text:='';
edit7.text:='';
edit8.text:='';
edit9.text:='';
edit10.text:='';
memo1.Text:='';
form2.visible:=false;
form1.visible:=true;
end;
end;
So! Jetzt sieht das ganze schon besser aus! Trotzdem kommen immer wieder Fehlermeldungen!
1. Wenn Eintrage.txt nicht existiert, wird sie ganz korrekt erstellt. So weit, so gut ...
2. Wenn aber die Datei schon angelegt ist und einige Einträge drin sind, kann er die Datei nicht finden.
3. Wenn aber die Datei schon angelegt ist und noch keine Einträge drin sind, kann er die Datei nicht finden.

Bei 2. und 3. steht dort "File not found".

Vielleicht könnt ihr mir jetzt weiterhelfen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#32

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 17:08
if fileexists('Eintrage.txt') Wo soll denn die Datei sein? Das aktuelle Verzeichnis ist nicht immer das Anwendungsverzeichnis. Ich hoffe, dass das irgendwann mal begriffen wird, zu mal es fast jedes mal erwähnt wird, wenn eine Datei ohne Pfad angegeben wird.
Das Anwendungsverzeichnis inklusive Anwendungsdateiname bekommst du mit ParamStr(0). Der Rest sollte sich durch Nachdenken ergeben.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#33

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 17:11
Zitat von Luckie:
Wo soll denn die Datei sein? Das aktuelle Verzeichnis ist nicht immer das Anwendungsverzeichnis. Ich hoffe, dass das irgendwann mal begriffen wird, zu mal es fast jedes mal erwähnt wird, wenn eine Datei ohne Pfad angegeben wird.
Das Anwendungsverzeichnis inklusive Anwendungsdateiname bekommst du mit ParamStr(0).
Das will ich ja danach machen ... Schon klar, dass später der Anwender nicht 50 Dateien auf dem Desktop haben will ...

Zitat von Luckie:
Der Rest sollte sich durch Nachdenken ergeben.
Was meinst du was ich die ganze Zeit mache?

Edit: Wäre schön, wenn du mich auf meine Fehler aufmerksam machen könntest
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#34

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 17:15
Habe ich doch gerade: Er findet die Datei nicht, weil du nur den Dateinamen angegeben hast, aber nicht das Verzeichnis! Woher soll also dein Programm oder Windows wissen WO es die Datei findet?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#35

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 17:16
Aber ich erstelle sie doch im Verzeichnis der EXE - Datei ... Das mache ich seit 2 Jahren so ... WArum soll das jetzt aus einmal nicht mehr gehen? Aber nun gut ... Ich probier es ...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#36

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 17:18
Zitat von Chrissi91:
Aber ich erstelle sie doch im Verzeichnis der EXE - Datei ... Das mache ich seit 2 Jahren so ... WArum soll das jetzt aus einmal nicht mehr gehen?
Zitat:
I was looking into the bug with Gordon Letwin, the architect for DOS 4. I looked at the code and commented “Maybe this is what was happening? But if that were the case, it’d take a one in a million chance for it to happen”.

Gordon’s response was simply: “In our business, one in a million is next Tuesday”.
Quelle: One in a million is next Tuesday
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#37

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 17:19
Du gehst implizit davon aus, dass Programmverzeichnis und Arbeitsverzeichnis identisch sind. Das ist oftmals der Fall, aber darauf kannst Du Dich eben nicht verlassen. Das ist es, was Michael Dir zu sagen versucht.

Wenn ich eine Verknüpfung zu Deiner Anwendung anlege, kann ich dort zum Beispiel ein Arbeitsverzeichnis meiner Wahl angeben. Du bist auf der sicheren Seite, wenn Du das korrekte Verzeichnis ermittelst und dann explizit mit angibst.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#38

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 17:34
if fileexists('C:\WINDOWS\Desktop\'+edit1.text+' '+edit2.text+'.txt') then Ist diese Schreibweise so korrekt?

Dann müsste das Ganze so aussehen, oder?

Delphi-Quellcode:
procedure TForm2.BitBtn1Click(Sender: TObject);
var
datei, datei2, datei3, datei4, datei5: textfile;
hilf: string;
begin
 if (combobox1.text='')or
    (edit1.text='') or
    (edit2.text='')then
      begin
       showmessage('Bitte geben Sie Anrede, Vor - und Nachnamen an, um den Datensatz speichern zu können.');
      end else
      begin
       if fileexists('C:\WINDOWS\Desktop\'+edit1.text+' '+edit2.text+'.txt') then
        begin
         showmessage('Achtung! Es existiert schon ein Eintrag unter diesem Namen! Abbruch ...');
         form2.visible:=false;
         form1.Visible:=true;
         combobox1.Text:='';
         edit1.text:='';
         edit2.text:='';
         edit3.text:='';
         edit4.text:='';
         edit5.text:='';
         edit6.text:='';
         edit7.text:='';
         edit8.text:='';
         edit9.text:='';
         edit10.text:='';
         memo1.Text:='';
        end else
        begin
         assignfile(datei,'C:\WINDOWS\Desktop\'+edit1.text+' '+edit2.text+'.txt');
         rewrite(datei);
         writeln(datei,combobox1.text);
         writeln(datei,edit1.text);
         writeln(datei,edit2.text);
         writeln(datei,edit3.text);
         writeln(datei,edit4.text);
         writeln(datei,edit5.text);
         writeln(datei,edit6.text);
         writeln(datei,edit7.text);
         writeln(datei,edit8.text);
         writeln(datei,edit9.text);
         writeln(datei,edit10.text);
         writeln(datei,memo1.text);
         closefile(datei);
        end;
       if fileexists('C:\WINDOWS\Desktop\Eintrage.txt') then
        begin
         assignfile(datei2,'C:\WINDOWS\Desktop\Eintrage');
         reset(datei2);
         readln(datei2,hilf);
         closefile(datei2);
          if hilf = 'then
           begin
            deletefile('C:\WINDOWS\Desktop\Eintrage.txt');
            assignfile(datei3,'C:\WINDOWS\Desktop\Eintrage.txt');
            rewrite(datei3);
            writeln(datei3,edit1.Text+' '+edit2.Text);
            closefile(datei);
           end else
           begin
            assignfile(datei4,'C:\WINDOWS\Desktop\Eintrage.txt');
            append(datei4);
            writeln(datei4,edit1.Text+' '+edit2.Text);
            closefile(datei4);
           end;
        end else
        begin
         assignfile(datei5,'C:\WINDOWS\Desktop\Eintrage.txt');
         rewrite(datei5);
         writeln(datei5,edit1.Text+' '+edit2.Text);
         closefile(datei5);
        end;

combobox1.Text:='';
edit1.text:='';
edit2.text:='';
edit3.text:='';
edit4.text:='';
edit5.text:='';
edit6.text:='';
edit7.text:='';
edit8.text:='';
edit9.text:='';
edit10.text:='';
memo1.Text:='';
form2.visible:=false;
form1.visible:=true;
end;
end;
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#39

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 17:38
Leider nein. Oder ja - aber im Endeffekt doch nein. *g*

Du kanst mit Deinem Code abfragen, ob es eine bestimmte Datei im Ordner 'c:\windows\desktop\' gibt. Das ist in sich nicht falsch - nur nicht das, was Du vermutlich möchtest. Ich kann Windows in jedem beliebigen Verzeichnis installieren und auch der Desktop ist mal hier und mal dort.

Wenn Du also rausfinden willst, welches Verzeichnis auf den Desktop verweist, so musst Du nur Windows dazu befragen - und für den Code dazu die Suche der DP.
Irgendwas mit "Special", "Folder" und "Location", wenn ich nicht irre.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
PierreB
(Gast)

n/a Beiträge
 
#40

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 17:39
Zitat:
if fileexists('C:\WINDOWS\Desktop\'+edit1.text+' '+edit2.text+'.txt') then
Du kannst doch nicht davon ausgehen das jeder Windows auf C:\ installiert hat !

Wie Luckie schon sagte:
ParamStr(0)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 7   « Erste     234 56     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz