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 1 von 7  1 23     Letzte »    
Chrissi91

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

Fehler bei REWRITE

  Alt 8. Okt 2005, 13:13
Delphi-Quellcode:
if fileexists('Eintrage.txt') then
 begin
  assignfile(datei2,'Eintrage.txt');
  reset(datei2);
  readln(datei2,hilf);
   if hilf <> 'then
    begin
     reset(datei2);
     append(datei2);
     writeln(datei2,edit1.text+' '+edit2.text);
    end else
    begin
     rewrite(datei2); <-- Hier Fehlermeldung
     writeln(datei2,edit1.text+' '+edit2.text);
    end;
   closefile(datei2);
  end else
  begin
   assignfile(datei2,'Eintrage.txt');
   rewrite(datei2);
   writeln(datei2,edit1.text+' '+edit2.text);
   closefile(datei2);
  end;
 end;
Fehlermeldung: ElnOutError I/0 error 32

Folgende Variablen wurden in der Procedur deklariert:

Delphi-Quellcode:
var
datei2: textfile;
hilf: string;
Keine Variablen wurden global deklariert.

Die Datei existiert. Sie ist aber leer. Deshalb habe ich mit der IF-Abfrage geprüft, ob sie leer ist, da der Befehl append bei leeren Dateien nicht funktioniert (meiner Meinung nach). Nun soll mit rewrite und writeln etwas in die Datei geschrieben werden. ICH HABE AUCH DIE SUCHMASCHINE BENUTZT, habe aber nichts gefunden, was mir weiterhelfen konnte.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 13:25
Hai Chrissi91,

ich habe deinen Code mal so formatiert das man die IF-ELSE die zusammen gehören auch erkennen kann
Was ich nicht verstehe: Was möchtest Du denn machen? Wenn etwas in der Datei steht möchtest Du sie erzeugen und dann etwas rein schreiben. Wenn aber schon etwas in der Datei steht möchtest Du noch etwas anhängen?
Delphi-Quellcode:
procedure TForm1.btn_TestClick(Sender: TObject);
var
  datei2: textfile;
  hilf: string;
begin
  if fileexists('Eintrage.txt') then
  begin
    assignfile(datei2, 'Eintrage.txt');
    reset(datei2);
    readln(datei2, hilf);
    if hilf <> 'then
    begin
      reset(datei2);
      append(datei2);
      writeln(datei2, edit1.Text + ' ' + edit2.Text);
    end
    else
    begin
      rewrite(datei2);// <-- Hier Fehlermeldung
      writeln(datei2, edit1.Text + ' ' + edit2.Text);
    end;
    closefile(datei2);
  end
  else
  begin
    assignfile(datei2, 'Eintrage.txt');
    rewrite(datei2);
    writeln(datei2, edit1.Text + ' ' + edit2.Text);
    closefile(datei2);
  end;
end;
Darum mag ich keine end-else in einer Zeile *g*
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Chrissi91

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

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 13:28
Es ist ja für mein Adressverzeichnis.

Wenn die Datei nicht existiert, soll sie erstellt werden.
Wenn die Datei existiert, soll etwas angehängt werden.
Aber wenn die Datei leer ist, funktioniert ja der Befehl append nicht, ...
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 13:34
Hai Chrissi91,

vergleiche noch einmal genau deinen Code und meinen. Du wirst bemerken das bei dir wohl ein end; zu viel ist.

Bei mir geht es nämlich ohne Probleme.

Zitat von Chrissi91:
...Aber wenn die Datei leer ist, funktioniert ja der Befehl append nicht, ...
Warum soll der nicht gehen?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Chrissi91

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

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 13:41
Weill dann eine Fehlermeldung kam ... ^^

Ich habe meinen Code durch deinen ersetzt und die Fehlermeldung kam trotzdem :'(
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 13:46
Zitat von Chrissi91:
...Ich habe meinen Code durch deinen ersetzt und die Fehlermeldung kam trotzdem :'(
Verstehe ich jetzt nicht.
Mit dieser (verkürzten) Variante habe ich auch kein Problem:
Delphi-Quellcode:
procedure TForm1.btn_TestClick(Sender: TObject);
var
  datei2: textfile;
  filename : string;
begin
  filename := ExtractFilePath(ParamStr(0)) + 'Eintrage.txt';
  assignfile(datei2,filename);
  if not fileexists(filename) then
  begin
    rewrite(datei2);
  end
  else
  begin
    reset(datei2);
  end;
  append(datei2);
  writeln(datei2, edit1.Text + ' ' + edit2.Text);
  closefile(datei2);
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Chrissi91

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

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 13:49
Ich versuch es dir nochmal zu erklären

Ich habe eine Index-Datei, in der die Dateinamen der Datensätze für mein Adressverzeichnis drinstehen. Wenn der Benutzer sich das Programm runterlädt, ist meistens noch keine Index-Datei dabei. Diese soll beim Erstellen des ersten Eintrages miterstellt werden. Dann soll der Dateiname in die Index-Datei getan werden. Und zwar wollte ich das so machen:

Delphi-Quellcode:
var
datei: textfile;
begin
assignfile(datei,'Eintrage.txt'); //Das ist die Index-Datei
rewrite(datei);
writeln(datei, edit1.text+' '+edit2.text+'.txt') //Daraus setzt sich der Dateiname zusammen
closefile(datei);
end;
Geht das so, wenn die Datei noch nicht existiert und erstellt werden soll?

Existiert die Index-Datei doch schon, dann soll einfach nur eine Zeile angefügt werden:

Delphi-Quellcode:
var
datei2: textfile;
begin
assignfile(datei2,'Eintrage.txt'); //Das ist die Index-Datei
append(datei2);
writeln(datei2, edit1.text+' '+edit2.text+'.txt') //Daraus setzt sich der Dateiname zusammen
closefile(datei2);
end;
Um das zu verbinden will ich das so machen:

Delphi-Quellcode:
var
datei, datei2: textfile;
begin
if fileexists('Eintrage.txt') then
 begin
  assignfile(datei2,'Eintrage.txt'); //Das ist die Index-Datei
  append(datei2);
  writeln(datei2, edit1.text+' '+edit2.text+'.txt') //Daraus setzt sich der Dateiname zusammen
  closefile(datei2);
 end
 else
 begin
  assignfile(datei,'Eintrage.txt'); //Das ist die Index-Datei
  rewrite(datei);
  writeln(datei, edit1.text+' '+edit2.text+'.txt') //Daraus setzt sich der Dateiname zusammen
  closefile(datei);
 end;
end;
Soweit mitgekommen?

Bei mir funktioniert das ganze mit Append aber nicht, wenn Eintrage.txt total leer ist.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 14:30
Zitat von Chrissi91:
... Bei mir funktioniert das ganze mit Append aber nicht, wenn Eintrage.txt total leer ist.
Wie gesagt: Bei mir geht es:

Zitat:
Um das zu verbinden will ich das so machen:
Hast Du denn jetzt mal mein zweites Codebeispiel getestet oder es Dir zumindest einmal angesehen?

Du sagst Du bekommst diesen Fehler "ElnOutError I/0 error 32". Hast Du schon einmal geschaut was der bedeutet?
Das F1 Ding sagt
Verletzung bei der gemeinsamen Benutzung

Eventuell hilft Dir das ja bei deiner Fehlersuche
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Chrissi91

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

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 14:36
Dein 2. Code hat mir nicht weitergeholfen. Die Fehlermeldung hilft mir auch nicht weiter ...

Dann werde ich mal weiter versuchen ...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 14:39
Dieser Code von Sharky tut wunderbar das, was du willst: Bei nicht vorhanden sein neu erstellen, bei vorhanden sein anhängen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 7  1 23     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 11:39 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