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 5 von 7   « Erste     345 67      
Chrissi91

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

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 18:41
Da ich das jetzt nur teste, reicht es ... Als näcstes programmiere ich ja, dass der nutzer den pfad unter optionen angeben kann ... also, der code is dann richtig ... schön ... thx
  Mit Zitat antworten Zitat
Chrissi91

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

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 18:50
Ich habe Windows unter C! Und ich habe den Code, wie im letzten Beitrag aufgeführt in meinem Programm ... Trotzdem kann er die Datei nicht finden:

Wenn die Datei leer ist
Wenn in der Datei schon Einträge drin sind ...

Den Code poste ich lieber nicht noch mal, sonst werde ich bald noch gesperrt
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

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

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 19:07
Was in solchen Fällen manchmal hilft, die Orientierung zurück zu gewinnen: Baue Dir erst aus den Editfeldern den Dateinamen zusammen und speichere ihn in einem String. Diesen String kannst Du dann mal begutachten und vermutlich den Fehler entdecken:

if fileexists('C:\WINDOWS\Desktop\'+edit1.text+' '+edit2.text+'.txt') then würde dann beispielsweise zu:

Delphi-Quellcode:
filename:= 'C:\WINDOWS\Desktop\'+edit1.text+' '+edit2.text+'.txt';
ShowMessage( filename );
if fileexists( filename ) then
Nur als Anregung...
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Chrissi91

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

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 19:39
Delphi-Quellcode:
procedure TForm2.BitBtn1Click(Sender: TObject);
var
datei, datei2, datei3, datei4, datei5, datei6: textfile;
hilf, pfad: string;
begin
if fileexists (ExtractFilePath(ParamStr(0))+'einstellungen.ini') then
begin
assignfile(datei6,ExtractFilePath(ParamStr(0))+'einstellungen.ini');
reset(datei6);
readln(datei6,pfad);
closefile(datei6);
end;
 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(pfad+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,pfad+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(pfad+'Eintrage.txt') then
        begin
         assignfile(datei2,pfad+'Eintrage.txt');
         reset(datei2);
         readln(datei2,hilf);
         closefile(datei2);
          if hilf = 'then
           begin
            deletefile(pfad+'Eintrage.txt');
            assignfile(datei3,pfad+'Eintrage.txt');
            rewrite(datei3);
            writeln(datei3,edit1.Text+' '+edit2.Text);
            closefile(datei);
           end else
           begin
            assignfile(datei4,pfad+'Eintrage.txt');
            append(datei4);
            writeln(datei4,edit1.Text+' '+edit2.Text);
            closefile(datei4);
           end;
        end else
        begin
         assignfile(datei5,pfad+'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;
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 "I/0 Error 32". (oder so ähnlich)

Was habe ich denn jetzt schon wieder falsch gemacht ...

In der Datei einstellungen.ini steht: C:\WINDOWS\DESKTOP\VERSION 3\

Trotzdem noch mal im Anhang ...
Angehängte Dateien
Dateityp: ini einstellungen_977.ini (31 Bytes, 2x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

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

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 20:40
Zitat von Daniel:
... und für den Code dazu die Suche der DP.
Irgendwas mit "Special", "Folder" und "Location", wenn ich nicht irre.
Wenn für den Desktop-Ordner der Code nicht vorhanden ist
Delphi-Quellcode:
uses
  ShlObj;

function GetShellFolder(CSIDL: integer): String;
var
  pidl : PItemIdList;
  FolderPath : string;
  SystemFolder : Integer;
begin
  SystemFolder := CSIDL;
  if SUCCEEDED(SHGetSpecialFolderLocation(0, SystemFolder, pidl)) then
  begin
    SetLength(FolderPath, max_path);
    if SHGetPathFromIDList(pidl, PChar(FolderPath)) then
    begin
      SetLength(FolderPath, strlen(PChar(FolderPath)));
    end;
  end;
  Result := FolderPath;
end;
Als CSIDL einfach CSIDL_DESKTOPDIRECTORY.

Aber das ist hier nicht das entscheidende Thema.

Als erstes solltest Du dir noch einmal Gedanken darüber machen wie Du die Adressdaten speichern möchtest. Wenn ich das richtig sehe versuchst Du für jeden Adresseintrag einen Datei zu erzeugen welche diese Namen hat: "Name Vorname.Txt".
In deiner "Index-Datei" speicherst Du dan alle Dateinamen welche Du erzeugt hast?
Was machst Du denn wenn zwei Menschen den selben Vor- und Nachnamen haben? Ja, das soll es geben

Auch wenn es sich jetzt hart anhört (ist aber nicht so gemeint) ->

Überlege Dir erst eine vernünftige Art die Daten zu speichern. Ich weiss; Du hast dir sicher Überlegt wie man es am einfachsten machen kann und bist auf diese Lösung gestossen. Aber 99% deiner Aufgabe als "Programmierer" besteht darin dir ein Konzept zu überlegen. Dies ist die wichtigste Arbeit. Das ganze dann in eine beliebige Sprache zu qutschen kann jeder der tippen kann

P.S.: Und Du solltest die Antworten hier im Forum genauer lesen. Auf die Problematik "Dateiname ohne Pfadangabe" habe ich schon um 17 Uhr ausführlich hingewiesen.

Wenn Du die Ratschläge die Du bekommst nämlich nicht annimmst kann es dir passieren das irgendwann keiner mehr Lust hat dir etwas zu erklären.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Chrissi91

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

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 20:54
Die Ratschläge habe ich auch angenommen, ausprobiert und die Fehlermeldung kommt trotzdem ... Nun hast du mir freundlicherweise wieder einen Code gepostet, mit dem ich aber leider nichts anfangen kann ... Nichts gegen dich oder andere, aber was bringt es mir, wenn mir jemand einen Code gibt und ich diesen durch meinen ersetzen soll? Daraus lerne ich ja nichts.
Sicherlich habe ich auch über ein besseres Konzept nachgedacht, nämlich alles in eine Datei zu speichern. Aber da kam ich auf mehr Probleme

Ich verstehe noch nicht ganz, wo der Fehler in meinem geposteten Code liegt
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#47

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 20:56
Zitat von Chrissi91:
Ich verstehe noch nicht ganz, wo der Fehler in meinem geposteten Code liegt
Dann zeig' uns doch mal das komplette Projekt.
  Mit Zitat antworten Zitat
Chrissi91

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

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 20:58
DA wird dir aber schlecht Im Anhang oder als Delphi-Code? Der Anhang ist größer als 3 MB
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#49

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 21:01
Zitat von Chrissi91:
DA wird dir aber schlecht Im Anhang oder als Delphi-Code? Der Anhang ist größer als 3 MB
Öh... Du hast nicht zufällig einen Server, auf den du den packen könntest? Und sei es nur der freie Speicherplatz bei deinem ISP...
  Mit Zitat antworten Zitat
Chrissi91

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

Re: Fehler bei REWRITE

  Alt 8. Okt 2005, 21:14
Nein, aber schalte mal dein ICQ ein, bzw. guck mal rein ...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 7   « Erste     345 67      


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 23:29 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