Entwickler-Ecke
Dateizugriff - Problem mit Deletefile
Dotter - Di 18.02.03 21:32
Titel: Problem mit Deletefile
Ich habe eine ComboBox mit Dateien als Einträgen.
Quelltext
1:
| DeleteFile(Combobox.text); |
funkioniert nicht.
schon.
Im Watch [Combobox.text] steht haargenau der Name der eigentlich gelöscht werden soll. Aber nix is.
Bitte um Hilfe.
Moderiert von
Tino: Code-Tags hinzugefügt.
Keldorn - Di 18.02.03 21:42
Hallo,
steht in der Combobox nur der Dateiname oder der komplette Pfad und der Dateiname?
wenn du nur den dateinamen hast, kann sich das aktuelle Verzeichnis geändert haben und dann wird es nicht funktionieren.
Frank
Anonymous - Di 18.02.03 21:52
Es gibt zwei Versionen von DeleteFile, eine Delphi Version und eine Api Version. Bei der Delphivesion ist es egal was du nimst. Bei der Api Version mußt du ein den String in PChar konvertieren. Bei Werten in '' ist es allerdings egal.
Dotter - Di 18.02.03 21:56
In der Combobox steht nur der Dateiname.
Wenn ich aber in der Löschprozedur den Dateinamen direkt in deletefile eingebe funkioniert es. Also kann sich das aktuelle Verzeichnis nicht geändert haben. Oder ?
Dotter - Di 18.02.03 21:59
OKi. Ich werde es probieren. Danke vorerst.
Dotter - Di 18.02.03 23:30
Sorry, ich kriegs nicht auf die Reihe. :roll:
Für einen kurzen Code wäre ich sehr dankbar.
Einfach einen Eintrag aus der Combobox als Datei löschen.
Delete - Mi 19.02.03 01:40
OK. Du willst Code? Kann ich dir geben, nur helfen wird er dir nicht.
Quelltext
1: 2:
| Combobox1.Text := 'C:\test.txt'; // nur damit was drinsteht Windows.DeleteFile(Combobox1.Text); |
Anonymous - Mi 19.02.03 01:46
Ich stell man jetzt eine Frage: Was soll überhaupt der Blödsinn in eine Löschprozedur nur den Dateinamen anzugeben? Wie kommt man überhaupt drauf, daß sowas funktionieren könnte?
Was soll die Prozedur jetzt machen? "Naja, ich hab jetzt einen Dateinamen aber kein Pfad. Nicht schlimm. Ich suche mir einfach irgendeine Datei aus. Ist doch egal welche. Ich lösche einfach irgendwelche, hauptsache die Namen stimmen überein."
Mach das Löschen nochmal, nur gibt bitte diesmal auch einen Pfad an.
Die Sache mit dem aktuellen Verzeichnis würde ich garnicht weiterverfolgen. Das aktuelle Verzeichnis kann jede Zeit auch von anderen Programmen verändert werden. Ist noch etwas aus der guten alten DOS Zeit. In DOS Zeiten war das noch kein Problem. Damals lief immer nur ein Programm zur Zeit.
Dotter - Mi 19.02.03 02:44
| Luckie hat folgendes geschrieben: |
OK. Du willst Code? Kann ich dir geben, nur helfen wird er dir nicht.
Quelltext 1: 2:
| Combobox1.Text := 'C:\test.txt'; // nur damit was drinsteht Windows.DeleteFile(Combobox1.Text); | |
Toll. Soweit war ich auch schon.
Seltsam ist daß,
Quelltext
1: 2: 3: 4: 5:
| if FindFirst(Combobox.text,faAnyFile,sr)=0 then showmessage(sr.name); funktioniert.
aber
if FindFirst(Combobox.text,faAnyFile,sr)=0 then deletefile(sr.name); aber nicht. |
Weder mit oder ohne Pfad..... weder Windows.deletefile(pchar(.... )) oder deletefile(...)
Anonymous - Mi 19.02.03 05:27
Anfänger die Fragen stellen wie man Dateien löscht machen mich immer nervös. Um so nervöse werde ich wenn ich merke, daß man mit TSearchRec arbeitet (d.h. alle Daten eines Ordners löschen will). Aber das heißt noch lange nichts und muß kein böses Vorhaben sein.
| Dotter hat folgendes geschrieben: |
| Toll. Soweit war ich auch schon. |
Nein, so weit wars du nicht. Du hast weder das verstanden was ich geschrieben habe, noch das was Luckie geschrieben hat.
| Dotter hat folgendes geschrieben: |
Seltsam ist daß,
Quelltext 1: 2: 3: 4: 5:
| if FindFirst(Combobox.text,faAnyFile,sr)=0 then showmessage(sr.name); funktioniert.
aber
if FindFirst(Combobox.text,faAnyFile,sr)=0 then deletefile(sr.name); aber nicht. |
Weder mit oder ohne Pfad..... weder Windows.deletefile(pchar(.... )) oder deletefile(...) |
Das kannst du garnicht vergleichen. ShowMessage zeigt nur ein String an. Solange es ein String ist, solange gibt es keine Fehlermeldung. DeleteFile braucht einen Dateinamen mit Pfad. Daß dieser als String übergeben wird ist nebensächlich. Ohne Pfad keine Löschaktion. Allerdings wehrst dich sehr dagegen es zu akzeptieren.
Ich gebe dir eine Zeile mit der du experimentieren kannst. Vielleicht verstehst du dann mehr was ich meine:
Quelltext
1: 2: 3:
| if FileExists(Dateiname) then ShowMessage('Datei existiert') else ShowMessage('Datei existiert nicht oder konnte nicht gefunden werden.'); |
Dotter - Mi 19.02.03 06:06
Soweit war ich tatsächlich schon. Es war der erste Versuch. Und ich kann es mir nicht Erklären warum es nicht funzt obwohl es funzen sollte. Deshalb auch der Post.
Quelltext
1: 2: 3: 4: 5:
| windows.deletefile(pchar('c:\programme\Borland\Delphi7\Projects\'+ComboBox.text));
oder so :
deletefile('c:\programme\Borland\Delphi7\Projects\'+Combobox.text); |
Funktionieren beide NICHT.
Übrigens. Die Einträge in der Combo sind Makros die ich dann in ein Richedit lade. Alles funktioniert bestens. Editieren, Neue Erzeugen und Löschen... aber halt nicht physikalisch. Das Programm ist sogut wie fertig und ist ein spezieller FTP Client. Ist auch nicht gaaanz so wichtig, andernfalls mache ich halt nur 20 Editierbare mit festen Namen. Sollte Ausreichen.
Delete - Mi 19.02.03 10:58
Wenn das so weiter geht, fange ich wieder an Basic zu programmieren. :evil:
Also erstmal. Du wolltest Code und den habe ich dir gegeben. Habe aber auch extra dazu geschrieben, dass er dir nicht weiterhelfen wird.
Zweites wäre es äußerst hilfreich, wenn du endlich mal mit einer Fehlermeldung rausrücken würdest.
Ein letzter Versuch dir zu helfen:
Quelltext
1:
| DeleteFile(PChar('c:\programme\Borland\Delphi\Projects\'+Combobox1.Text)); |
Tino - Mi 19.02.03 11:14
| Popov hat folgendes geschrieben: |
| Ich stell man jetzt eine Frage: Was soll überhaupt der Blödsinn in eine Löschprozedur nur den Dateinamen anzugeben? |
Was ist denn so blöd daran eine Datei im aktuellen Arbeitsverzeichnis zu löschen?
| Popov hat folgendes geschrieben: |
| Wie kommt man überhaupt drauf, daß sowas funktionieren könnte? |
Wie kommst Du drauf das es nicht funktioniert? Also bei mir löscht er die Datei.
| Popov hat folgendes geschrieben: |
| Was soll die Prozedur jetzt machen? "Naja, ich hab jetzt einen Dateinamen aber kein Pfad. Nicht schlimm. Ich suche mir einfach irgendeine Datei aus. Ist doch egal welche. Ich lösche einfach irgendwelche, hauptsache die Namen stimmen überein." |
Siehe oben. Er löscht die Datei im Arbeitsverzeichnis.
| Popov hat folgendes geschrieben: |
| Das aktuelle Verzeichnis kann jede Zeit auch von anderen Programmen verändert werden. |
Ich war mir nicht sicher ob das wirklich so ist und habe deshalb eine Anwendung gestartet und eine weitere Instance dieser Anwendung über eine Verknüpfung gestartet. In der Verknüpfung habe ich ein anderes Arbeitsverzeichnis angegeben. Beide gestarteten Anwendungen haben angeblich ihr eigenes Verzeichnis. Denn beide haben die richtige Datei gelöscht.
| Popov hat folgendes geschrieben: |
| DeleteFile braucht einen Dateinamen mit Pfad. Daß dieser als String übergeben wird ist nebensächlich. Ohne Pfad keine Löschaktion. |
Wie gesagt: Bei mir funktioniert es auch wenn ich keine Verzeichnis angebe!
| Luckie hat folgendes geschrieben: |
| Wenn das so weiter geht, fange ich wieder an Basic zu programmieren. :evil: |
Gehört das jetzt zum Thema? :evil: Aber die Entscheidung kann Dir hier keiner Abnehmen.
Gruß
TINO
Keldorn - Mi 19.02.03 11:31
Hallo
@Tino: setzt mal einen Opendialog mit ein, starte ihn, nimm ein anderes Verzeichnis und dann versuch mal die Datei zu löschen, bzw. mit fileexist prüfen. geht nicht...
Mfg Frank
Tino - Mi 19.02.03 11:39
| Keldorn hat folgendes geschrieben: |
| setzt mal einen Opendialog mit ein, starte ihn, nimm ein anderes Verzeichnis und dann versuch mal die Datei zu löschen, bzw. mit fileexist prüfen. geht nicht... |
Hab ich etwas anderes behauptet? Ich habe geschrieben das die Datei im aktuellen Arbeitsverzeichnis gelöscht wird. Das sich das Arbeitsverzeichnis durch den OpenDialog ändern kann weiß ich! Aber das ändert nichts an der Tatsache das es funktioniert.
Gruß
TINO
Anonymous - Mi 19.02.03 12:56
Ich hab vor Jahren auch mit dem aktuellen Verzeichnis gearbeitet. Bei mir hat eine andere Anwendung das aktuelle Verzeichnis geändert. Dadurch wurde Daten gelöscht und verändert die nicht gelöscht und verändert werden sollten. Das Ende vom Lied war, daß ich mein Betriebssystem neu installieren durfte.
So wie meine Versuche gezeigt haben hat das aktuellen Arbeitsverzeichnis etwas mit dem aktuellen Arbeitsverzeichnis von DOS zu tun. Somit kann es jede Zeit verändert werden. Ich las mich aber gerne berichtigen.
Weiterhin hab ich nicht gesagt, daß es nicht möglich ist, ich hab nur gesagt das es Blödsinn ist. Ich las mich auch gerne hier berichtigen, aber ich schätze, daß es die paar male wo es funktionierte nur ein Zufall war. Zufällig war das aktuelle Verzeichnis auch das Arbeitsverzeichnis. Somit hat er paar Glückstreffer. Dann funktionierte es wieder nicht.
Wenn ich ihn also gefragt habe wieso er glaubt, daß es funktionieren könnte, dann frage ich eher ob er auch weiß was er da macht. Ob er vorhat gezielt Daten zu löschen oder einfach nur Dateinamen angibt und hoft, daß er im richtigen Verzeichnis ist.
| Tino hat folgendes geschrieben: |
| Popov hat folgendes geschrieben: | | DeleteFile braucht einen Dateinamen mit Pfad. Daß dieser als String übergeben wird ist nebensächlich. Ohne Pfad keine Löschaktion. |
Wie gesagt: Bei mir funktioniert es auch wenn ich keine Verzeichnis angebe!
|
Die Bemerkung bezog sich auf sein Beispiel mit DeleteFile und ShowMessage. Bei ShowMessage hat er einen korrekten Text (wahrscheinlich den Dateinamen), bei DeleteFile konnte der die Datei nicht finden.
Deshalb stehe ich immer noch dazu. Ohne einen Pfad weiß er nicht was er löscht. Ich hab noch nie Probleme mit DeleteFile gehabt. Aber ich hab immer den Pfad mit angegeben.
Dotter - Mi 19.02.03 18:40
Ich glaube wir reden hier aneinander vorbei. Wie man einen Datei löscht weiß ich seit Jahren. Ich nutze immer relative Pfade. Denn immer den vollen Pfad zu suchen ist Blödsinn. Man installiert das Programm auf dem Zielrechner ja nicht in das selbe Verzeichniss.
Mein Problem ist daß deletefile die Einträge in der ComboBox NICHT erkennt. Es folgt auch keine Fehlermeldung. Wenn ich bis zum Eintrittspunt trace und einen simplen Vergleich auf einen bestimmten Eintrag mache wird er nicht erkannt obwohl er im Watch steht.
Beispiel:
Im Watch steht : Combobox1.text : "Test"
Quelltext
1: 2: 3: 4:
| if Combobox1.text ="Test" then deletefile(Combobox1.text) else Showmessage('Fehler'); |
Die Routine meldet immer FEHLER.
Delete - Mi 19.02.03 19:11
| Dotter hat folgendes geschrieben: |
Ich glaube wir reden hier aneinander vorbei.
|
Nein tun wir nicht. Du scheinst nur nicht verstehen zu wollen, was wir dir die ganze Zeit sagen wollen.
| Zitat: |
Ich nutze immer relative Pfade. Denn immer den vollen Pfad zu suchen ist Blödsinn. Man installiert das Programm auf dem Zielrechner ja nicht in das selbe Verzeichniss.
|
Das ist kein Grund relative Pfade zu benutzen. Nimm die AdressDB von meiner Seite, die kannst hin packen wo du willst, sie wird iher dateien immer, aber auch wirklich immer wiederfinden. Und das ganze ist noch nicht mal sooooo schwer. Kuck mal in der Hilfe unter TApplication -> Exename, ParamStr(0) und ExtractFilepath nach.
| Zitat: |
Mein Problem ist daß deletefile die Einträge in der ComboBox NICHT erkennt. Es folgt auch keine Fehlermeldung. Wenn ich bis zum Eintrittspunt trace und einen simplen Vergleich auf einen bestimmten Eintrag mache wird er nicht erkannt obwohl er im Watch steht.
Beispiel:
Im Watch steht : Combobox1.text : "Test"
Quelltext 1: 2: 3: 4:
| if Combobox1.text ="Test" then deletefile(Combobox1.text) else Showmessage('Fehler'); |
Die Routine meldet immer FEHLER. |
Dann steht in der Combobox auch nicht 'Test' drin.
In meiner Combobox steht drin: 'Test' und 'Hallo' (auch in der Reihenfolge). Und das geht wunderbar:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| procedure TForm1.Button1Click(Sender: TObject); begin if Combobox1.Text = 'Hallo' then Showmessage('Gefunden') else ShowMessage('nicht gefunden'); end; |
Wähle ich 'Hallo' aus, sagt er 'Gefunden', wähle ich 'Test' aus, sagt er 'nicht gefunden'.
Dotter - Mi 19.02.03 21:33
Es ist nicht deletefile das die Macken hat. Es ist die Combobox. Ups... falscher Thread.
Fakt ist: Wenn du eine DATEI als Eintrag hast wird der Namen nicht erkannt. Wenn du es nicht glaubst probiers aus.
btw: Ich hab schon ein paar Jährchen als Coder auf'm Buckel. Verhalte dich also bitte nicht so herablassend ich machs ja auch nicht. :wink:
Delete - Mi 19.02.03 21:56
OK.
Du machst jetzt bitte mal folgendes. Du erstellst im Stammverzeichnis von c: eine Datei names "test.txt". Dann machst du ein neues Projekt, packst eine Kombobox und einen Button drauf und dann schreibst du folgenden Code:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.FormCreate(Sender: TObject); begin Combobox1.Items.Add('c:\test.txt'); end;
procedure TForm1.Button1Click(Sender: TObject); begin DeleteFile(Combobox1.Text); end; |
Der klappt bei mir wunderbar.
Ich habe übrigens auch nicht erst gestern angefangen zu programmieren.
Anonymous - Mi 19.02.03 22:17
Es gibt drei Fehlerquellen:
- Die Datei ist da, aber der Pfad ist falsch und die Datei kann nicht gefunden werden.
- Der Dateiname ist falsch geschrieben.
- Alles ist richtig geschrieben, aber die Dateierweiterung fehlt.
Wie auch immer, irgendwas ist falsch an dem Dateinamen.
Es gibt einige funktionen die eine Variable als Parameter brauchen. Es ist meisten dann, wenn es einen Rückgabewert gibt. In solchen Fällen kann man nicht mit Komponenten-Text oder Caption ankommen, sondern muß es über eine Variable machen. Allerdings braucht DeleteFile keine Variable. Deshalb muß es funktionieren.
Übrigens:
function DeleteFile(const FileName: string): Boolean;
Beschreibung
DeleteFile löscht die mit FileName angegebene Datei vom Datenträger.
Kann die Datei nicht gelöscht oder gefunden werden, gibt die Funktion False zurück.
Prüf den Boolean Rückgabewert.
Quelltext
1: 2: 3: 4:
| procedure TForm1.Button1Click(Sender: TObject); begin if not DeleteFile(Combobox1.Text) then ShowMessage('Datei konnte nicht gelöscht werden, da sie nicht gefunden werden konnte'); end; |
Alternativ (das hab ich aber bereits geschrieben) kann man vorher prüfen ob die Datei existiert. Siehe
FileExists Funktion.
Das Problem ist immer noch, daß du ein Wunder erwartest und nicht bereit bist die Beispiele die du bekommst auszuprobieren.
Dotter - Do 20.02.03 19:45
Hier der Quelltext.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| Makros.dat ist ein Textfile mit den Dateien als einträgen. makro1 makro2 makro3
procedure TMakro.FormCreate(Sender: TObject); begin Combobox1.items.LoadFromFile('Makros.dat'); end;
procedure TMakro.DeleteClick(Sender: TObject); begin deletefile(Combobox1.text); // Funktioniert NICHT obwohl im Watch 'makro1' steht. deletefile('makro1'): // Funktioniert Combobox1.DeleteSelected; Combobox1.items.SaveToFile('Makros.dat'); end; |
Glaubt mir, ich hatte ganz andere Probleme zu lößen. Das Simple mache ich immer zuletzt.... dachte ich.
Anonymous - Fr 21.02.03 02:20
Ich gebe zu, daß es durchaus interresant wäre zu erfaheren wieso es bei dem einen Text funktioniert und bei dem anderen nicht. Allerdings sind bereits vorschläge gemacht worden wie es funktionieren könnte, z.B. mit einem Pfad davor. Mir ist zwar klar, daß es sowas wie den aktuellen Pfad gibt, aber wie kommst du bloß drauf, daß du dich in dem richtigen Ordner befindest? Wie stellst du das sicher? Wie überprüfst du das vorher?
So wie ich es sehe ist es nur ein Glückstreffer wenn du die richtige Datei löscht. Ich hab dir den Tip mit dem Rückgabewert bei FileDelete gegeben. Auf diese Weise kannst du überprüfen wieso es nicht klappt. Wenn ein False zurückkommt, dann konnte die Datei nicht gefunden werden. Allerdings setzt du die Tips nicht um.
Zwar hast du laut deiner Aussage bereits viele Jahre als Programmierer Erfahrungen, da hast du dich aber nicht mit dem Datenzugriff beschäftigt. Alle Tips die man dir geben konnte wurden dir gegeben, jedoch ohne daß du nur einen umgesetzt hättest. Was mich angeht, so werde ich hier nicht weiter antworten. Die Tipps mit dem Pfad vor dem Dateinamen hab ich dir gegeben. Zwar meint Tino, daß es auch wunderbar mit dem aktuellen Pfad funktioniert, aber ich halte das für ein Glückspiel. Entscheide also selbst ob du dir alle bisherigen Antworten nochmal durchliest und es anders machst.
Delete - Fr 21.02.03 09:39
| Dotter hat folgendes geschrieben: |
Quelltext 1:
| deletefile(Combobox1.text); // Funktioniert NICHT obwohl im Watch 'makro1' steht. | |
Das stimmt nicht! Ich hab´s mal eben ausprobiert. Die Datei wird problemlos gelöscht -
solange ich das
Arbeitsverzeichnis nicht ändere, bzw. solange dieses Arbeitsverzeichnis zufällig der Ordner mit dem Delphi-Projekt ist! Ausprobieren:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TMakro.DeleteClick(Sender: TObject); begin SetCurrentDir('c:\');
deletefile(Combobox1.text); deletefile('makro1'); Combobox1.DeleteSelected; Combobox1.items.SaveToFile('Makros.dat'); end; |
Da ich davon ausgehe, dass sich deine Makro-Dateien nicht im Root der Festplatte C:\ befinden, wirst du diesmal auch mit
schlechte Karten haben.
Was dir alle anderen die ganze Zeit sagen wollen, und was du -trotz angeblich vorhandener Erfahrungen in der Programmierung!- nicht zu verstehen scheinst, ist: du
solltest den kompletten Pfad angeben! Wenn sich diese Makrodateien im selben Ordner wie dein Programm befinden, dann genügt
Quelltext
1:
| DeleteFile(ExtractFilePath(paramstr(0)) + Combobox1.Text); |
und es spielt absolut keine Rolle, welcher Ordner gerade als aktuelles Arbeitsverzeichnis eingestellt ist.
Und was bei vorhandener Programmiererfahrung auf keinen Fall passieren darf, ist die MISSACHTUNG von Funktionen und ihren Ergebnissen. Wenn ich mir den Beispielcode so ansehe, dann bemerke ich zwei grundsätzliche Fehler.
1. Man kann und sollte prüfen, ob die Combobox überhaupt Text enthält.
2. Es ist dir vollkommen egal, ob das Löschen der Datei geklappt hat oder nicht. Das ausgewählte Item wird in jedem Fall aus der Combobox entfernt, und die "makros.dat" wird dann auch neu gespeichert.
Ich persönlich hätte es so gemacht:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| with ComboBox1 do if(Text <> '') and (DeleteFile(ExtractFilePath(paramstr(0)) + Text)) then begin Items.Delete(ItemIndex); ItemIndex := 0; Items.SaveToFile('makros.dat'); end else ShowMessage('Datei nicht gefunden'); |
Tino - Fr 21.02.03 11:44
| Popov hat folgendes geschrieben: |
| Zwar meint Tino, daß es auch wunderbar mit dem aktuellen Pfad funktioniert, aber ich halte das für ein Glückspiel. |
Ich habe geschrieben das ich wenn ich kein Verzeichnis angebe die Datei im aktuellen Arbeitsverzeichnis gesucht und in dem Fall von Dotter gelöscht wird. Nichts anders. Ob die Angabe eines Verzeichnisses notwendig ist oder nicht kann ich in dem Fall von Dotter nicht beurteilen. Einige meiner Programme müssen auf Dateien zugreifen welche sich im aktuellen Arbeitsverzeichnis befinden. Diese Dateien findet mein Programm immer... also kann ich die Ausage mit dem Glücksspiel nicht verstehen.
Aber in den meisten Fällen, da geben ich Dir recht, ist die Angabe eines kompletten Verzeichnisses notwendig. Nur habe ich dies nie zur Diskussion gebracht.
Gruß
TINO
Anonymous - Fr 21.02.03 12:11
"Zwar meint Tino, daß es auch wunderbar mit dem aktuellen Pfad funktioniert" war jetzt nicht irgendwie als Sonstwas gemeint, sondern daß ich es selbst nicht ausprobiert habe und dich lediglich als Referenz angegeben habe.
Ich persönlich habe vor Jahren ein oder zwei mal mit dem aktuellen Ordner gearbeitet und hab das letzte mal extrem schlechte Erfahrungen damit gemacht. Deshalb hab ich nie wieder damit gearbeitet und werde es auch in Zukunft nie damit arbeiten. Ich hab die Erfahrung gemacht, daß der aktuelle Ordner von anderen Programmen verändert werden kann. Deshalb meine Aussage mit dem Glücksspiel. Kann aber sein, daß seit Delphi1 jedes Delphi-Programm sein eigenen aktuellen Ordner hat. Dann sind meine Beobachtungen veraltet.
Ich für mein Teil sehe keinerlei Arbeit darin mit "richtigen" Pfaden zu arbeiten. Mag sein, daß du weiß was du tust, ich bin mir aber nicht sicher ob Dotter auch sich im klaren ist was er macht. So wie ich seinen Codes beurteile sind das Glücksspiele.
Um nochmal auf den aktuellen Ordner zurückzukommen. So weit ich mich erinnern kann gibt es eine Funktion in Delphi die auch mit dem aktuellen Ordner arbeitet. Man muß also, um mit der Funktion zu arbeiten, zuerst den aktuellen Ordner korrekt setzen und erst dann die Funktion ausführen. Allerdings kann ich mich nicht an den Namen der Funktion erinnern.
Dotter - So 23.02.03 07:01
Ich bitte 1000 mal um Verzeihung daß ich so nervte. Es war natürlich mein Fehler. Ich hatte, da das Programm fast fertig war, die Exceptions deaktiviert. Hatte es allerdings ... ähem... vergessen. Nachdem ich die Exceptions wieder aktivierte wars dann simple..... *KOPF_in_den_SAND_STECK*..... hatte vergessen eine Datei zu schließen... HILFE... was für ein Anfängerfehler... daran war bestimmt das Bier schuld. :roll: Danke trotzdem für eure Hilfe, ihr seid wirklich gut.
Anonymous - Mo 24.02.03 16:27
| Dotter hat folgendes geschrieben: |
| Ich hatte, da das Programm fast fertig war, die Exceptions deaktiviert. |
Das ist ein schönes Beispiel dafür wieso man die Exceptions nicht deaktivieren sollte. Ich verstehe nicht wieso es die Option überhaupt gibt. Wenn man alles richtig macht, dann gibts auch keine Exceptions die einen nerven. Wenn man aber schon mit Try..Except programmiert, dann sollten man es wenigsten immer anlassen, sonst sieht man seine Fehler nicht.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!