Autor Beitrag
Spurius
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 142

Win XP Home
D3 Prof, D7 Prof
BeitragVerfasst: Mi 16.07.03 21:27 
Hallo

ich will mit
ausblenden 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



BeitragVerfasst: Mi 16.07.03 21:35 
Wie wäre es, wenn du vorher mit Suche in: Delphi-Forum, Delphi-Library FILEEXISTS prüfst, ob sie da ist? :roll:

Moderiert von user profile iconTino: Such-Tags hinzugefügt.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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 Suche in: Delphi-Forum, Delphi-Library DELETEFILE doch besser?

Moderiert von user profile iconTino: Such-Tags hinzugefügt.
Spurius Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 142

Win XP Home
D3 Prof, D7 Prof
BeitragVerfasst: Do 17.07.03 11:53 
Hallo,

wie prüfe ich aber ob in c:/test.ini die section xy existiert?

mit
ausblenden Delphi-Quelltext
1:
fileexists('c:/test.ini/xy')					

gehts nicht! Wie dann?

MfG
Spurius
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 142

Win XP Home
D3 Prof, D7 Prof
BeitragVerfasst: Do 17.07.03 13:16 
Kann schin sein das ich einiges durcheinanderbringe :oops: , 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: 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



BeitragVerfasst: 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
ausblenden 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:
ausblenden 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:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 142

Win XP Home
D3 Prof, D7 Prof
BeitragVerfasst: 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. :x
MfG
Spurius
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 17.07.03 15:30 
Komisch, kennt mein Delpühi (D6 personal) auch nicht.

@mathias: Kuck da doch noch mal bitte nach.
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: 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.
ausblenden 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



BeitragVerfasst: 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 :wink:
ausblenden 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:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
  ini := TIniFile.Create('win.ini');
  if(ini <> nilthen try
    if(SectionExists(ini,'windows')) then
      ShowMessage('yo');
  finally
    ini.Free;
  end;
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 17.07.03 16:20 
Siehe hier:
user defined image
Oder habe ich an der falschen Stelle gesucht?
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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
ausblenden Delphi-Quelltext
1:
ini : TIniFile;					

deklariere und o.g. Funktion aufrufe. Wie sagt man: Vererbung? :)
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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. :wink:
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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. :mrgreen:

Langsam wird´s wohl Zeit für einen FUTURAMA-OT-Teil?
Spurius Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 142

Win XP Home
D3 Prof, D7 Prof
BeitragVerfasst: 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



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 142

Win XP Home
D3 Prof, D7 Prof
BeitragVerfasst: Do 17.07.03 22:15 
Hallo,
hier der code:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 304

Win 98, Win98SE, Win XP Home
D5 Std
BeitragVerfasst: Do 17.07.03 23:51 
Hallo Spurius!

Es wäre sicherlich einen Versuch wert, zu schreiben:
ausblenden Delphi-Quelltext
1:
if ini.sectionexists(profil) then					


Gruß

Dietmar Brüggendiek