| Autor |
Beitrag |
Spurius
      
Beiträge: 142
Win XP Home
D3 Prof, D7 Prof
|
Verfasst: Mi 16.07.03 21:27
Hallo
ich will mit
Delphi-Quelltext 1:
| ini.erasesection(profil) |
eine ini-datei löschen, von der ich nicht weiss, ob sie existiert. wenn sie nicht existiert, bekomme ich eine fehlermeldung.  ich habs auch schon mit try...except versucht, hab aber auch fehlermeldung bekommen. An was kann das liegen?
MfG
Spurius
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 16.07.03 21:35
Wie wäre es, wenn du vorher mit FILEEXISTS prüfst, ob sie da ist?
Moderiert von Tino: Such-Tags hinzugefügt.
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 17.07.03 07:15
Das, @Luckie, und dann hätte ich zum Löschen der Datei auch nicht "ini.EraseSection" benutzt. Vielleicht wäre DELETEFILE doch besser?
Moderiert von Tino: Such-Tags hinzugefügt.
|
|
Spurius 
      
Beiträge: 142
Win XP Home
D3 Prof, D7 Prof
|
Verfasst: Do 17.07.03 11:53
Hallo,
wie prüfe ich aber ob in c:/test.ini die section xy existiert?
mit
Delphi-Quelltext 1:
| fileexists('c:/test.ini/xy') |
gehts nicht! Wie dann?
MfG
Spurius
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 17.07.03 12:05
Du bringst, so scheint´s, einiges durcheinander.
Du versuchst eine Datei mit einer INI-Funktion zu löschen, und du versuchst eine bestimmte INI-Sektion mit einer Dateifunktion zu finden. Hm, kann das was werden? Ich glaube nicht. Da ich deine Kenntnisse trotzdem nicht einschätzen mag, gebe ich dir nur den gut gemeinten Hinweis: Falls nötig, setze dich bitte erst mit den Grundlagen auseinander.
Einstweilen - SectionExists (s. Hilfe zu TIniFile).
|
|
Spurius 
      
Beiträge: 142
Win XP Home
D3 Prof, D7 Prof
|
Verfasst: Do 17.07.03 13:16
Kann schin sein das ich einiges durcheinanderbringe  , ich prog mit Delphi noch nicht so lange. hab grad in der delphi-hilfe geschaut, hat mich aber nicht weitergebracht.
also nochmal: ich will eine ini-datei mit einer ini-funktion löschen, und davor feststellen, ob die ini-datei überhaupt existiert, da sonst eine Fehlermeldung kommt. Weiß jemand wie ich das abfrage, ob die datei existiert?
MfG
Spurius
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Do 17.07.03 13:31
Hallo!
| Spurius hat folgendes geschrieben: | | ich will eine ini-datei mit einer ini-funktion löschen, |
Dann ließ dir bitte noch mal den Hilfetext von der Methode EraseSection durch. Diese löscht nicht die Ini-Datei sondern, wie der Methodennamen es auch vermuten lässt, eine Sektion einer Ini-Datei.
Wie man eine Datei löscht und auch vorher prüft ob diese existiert haben Luckie und Mathias weiter oben geschrieben.
Gruß
Tino
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 17.07.03 14:30
Ich denke, hier scheitert eine vernünftige Antwort bereits daran, dass Begriffe wie INI- Datei und Sektion durcheinander gebracht werden. Sinn ergibt das allererste Posting von Spurius eigentlich nur so:
| Spurius hat folgendes geschrieben: | ich will mit
Delphi-Quelltext 1:
| ini.erasesection(profil) |
eine ini-Sektion löschen, von der ich nicht weiss, ob sie existiert. |
In dem Fall lautet also die Antwort: vorher mit SektionExists prüfen:
Delphi-Quelltext 1: 2:
| if ini.SectionExists(profil) then ini.EraseSection(profil); |
Ansonsten - wenn du tatsächlich eine Datei löschen willst, dann sieht das natürlich so aus:
Delphi-Quelltext 1: 2:
| if fileexists('c:\test.ini') then DeleteFile('c:\test.ini'); |
Nichts für ungut, Spurius. Ich habe auch mal am Anfang gestanden, aber du solltest dich bemühen, deine Frage verständlich zu formulieren.
Grüße.
|
|
Spurius 
      
Beiträge: 142
Win XP Home
D3 Prof, D7 Prof
|
Verfasst: Do 17.07.03 15:15
Hallo,
ich will ja nicht nerven, aber das problem ist ja, das sectionexists als unbekannter bezeichner benannt wird. sonst wär das ja kein problem, aber so kann ich die existenz einer ini-section nicht prüfen.
MfG
Spurius
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 17.07.03 15:30
Komisch, kennt mein Delpühi (D6 personal) auch nicht.
@mathias: Kuck da doch noch mal bitte nach.
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Do 17.07.03 15:40
| Luckie hat folgendes geschrieben: | | Komisch, kennt mein Delpühi (D6 personal) auch nicht. |
Mein Delphi 5 kennt die Funktion:
| Delphi-Hilfe hat folgendes geschrieben: | Die Methode gibt an, ob die INI-Datei einen Abschnitt enthält.
Delphi-Quelltext 1:
| function SectionExists (const Section: String): Boolean; |
Beschreibung
Mit SectionExists kann festgelegt werden, ob die in FileName angegebene INI-Datei einen Abschnitt enthält.
Der String Section bezeichnet den INI-Dateiabschnitt, dessen Vorhandensein von SectionExists festgestellt wird.
SectionExists gibt einen booleschen Wert zurück, der angibt, ob der fragliche Abschnitt enthalten ist. |
Gruß
Tino
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 17.07.03 16:12
Ich glaube zwar irgendwie nicht, dass Borland diese Funktion ab D6 wieder entfernt hat (das S nicht vergessen bei SectionExists?), aber selbst wenn: die Funktion basiert nur auf ReadSection (nach Schnüffeln in der "IniFiles.pas" ermittelt). Jetzt sagt bitte nicht, ReadSection ist auch nicht bekannt.
Für den Notfall hier die Adaption für eure komischen Delphi-Versionen
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| uses IniFiles;
function SectionExists(const ini: TIniFile; const Section: string): boolean; var S : TStringList; begin S := TStringList.Create; try ini.ReadSection(Section, S); Result := S.Count > 0; finally S.Free; end; end; |
Man muss eben in diesem Fall nur die TIniFile-Variable mit angeben:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| ini := TIniFile.Create('win.ini'); if(ini <> nil) then try if(SectionExists(ini,'windows')) then ShowMessage('yo'); finally ini.Free; end; |
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 17.07.03 16:20
Siehe hier:
Oder habe ich an der falschen Stelle gesucht?
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 17.07.03 16:29
SectionExists ist eine Methode von "TCustomIniFile", lässt sich aber dennoch mit "TIniFile" benutzen. Unter TCI müsstest du sie auch im Index finden.
Aber, wie gesagt!, ich erhalte keine Fehlermeldung, wenn ich
Delphi-Quelltext
deklariere und o.g. Funktion aufrufe. Wie sagt man: Vererbung? 
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 17.07.03 16:39
Ok, dann habe ich an der falschen Stelle gekuckt. Und mit dem Erben bin ich noch nicht dran, das dauert noch etwas. Aber vielleicht werde ich auch eingefrohren und erbe dann meine eigenen Zinsen und dann kaufe ich die letzte Anchovi-Dose. 
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 17.07.03 18:36
off-topic:
Guck dir die Folge an, die heute (gleich) kommt. In der Halle der Imperatoren, steht auf dem Bild nach Fry "Fry's assassin", und danach "Fry's assassin's assassin". Laut DVD-Kommentar die beste Möglichkeit, in letzterem viermal das Wort "ass" unterzubringen, ohne das der Zensor meckert.
Langsam wird´s wohl Zeit für einen FUTURAMA-OT-Teil?
|
|
Spurius 
      
Beiträge: 142
Win XP Home
D3 Prof, D7 Prof
|
Verfasst: Do 17.07.03 19:15
Also ich hab das mit der 'adaption' probiert, bekomme aber trotzdem meldung(bei sectionexists), nichtdefinierter bezeichner. Mach ich da irgendwas falsch oder gehts mit delphi 3 prof. einfach nicht?
Ich brauch halt sowas wie sectionexists, weil das ganze in einem adressenmanager verwendet wird und ich so profile löschen will.
MfG
spurius
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 17.07.03 21:14
Zeig doch mal den Code, den du inzwischen hast. Bitte vollständig, aber nur den INI-Teil posten, nicht die ganze Unit. 
|
|
Spurius 
      
Beiträge: 142
Win XP Home
D3 Prof, D7 Prof
|
Verfasst: Do 17.07.03 22:15
Hallo,
hier der code:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm7.Button1Click(Sender: TObject); begin profil := edit1.text; ini := tinifile.create('c:/test'); if sectionexists(ini,profil) then try ini.erasesection(profil); except showmessage('Geht nicht!'); end; profil := ''; end; |
geht aber nicht, wegen sectionexists(undef. bezeichner)
MfG
Spurius
|
|
Brueggendiek
      
Beiträge: 304
Win 98, Win98SE, Win XP Home
D5 Std
|
Verfasst: Do 17.07.03 23:51
Hallo Spurius!
Es wäre sicherlich einen Versuch wert, zu schreiben:
Delphi-Quelltext 1:
| if ini.sectionexists(profil) then |
Gruß
Dietmar Brüggendiek
|
|