Entwickler-Ecke

Dateizugriff - Ini Datei funktioniert nicht


Der Schreckliche - Sa 03.04.10 14:43
Titel: Ini Datei funktioniert nicht
Hallo zusammen,

mein Programm soll über eine IniDatei angesteuert werden. Funktioniert auch wunderbar auf meinen Delphirechner.
Auf einen anderen Rechner geht nichts. Sitzt seit Tagen davor und sehe den Fehler nicht!


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
procedure TVerwaltung.FormShow(Sender: TObject);
 {Verweist auf die Ini Datei um beliebige Datenverzeichnisse verwenden zu können}
begin
 Maxwidth   := Verwaltung.width;       {Nimmt daten vom Verwaltungsformular}
 Maxheight  := Verwaltung.height;      {Nimmt daten vom Verwaltungsformular}
 MaxTop     := 78;                     {Top wird definiert}
 MaxBottom  := 10;                     {Unten wird definiert}
 Maxright   := 18;                     {Rechts wird definiert}
 MaxLeft    := 5;                      {Links wird definiert}
 PfadIni := TInifile.Create(ExtractFilePath(application.ExeName)+'AccessKonfig.ini');
  {Ini Datei initialisieren}
  {ExtractFilePath(application.ExeName) verweißt auf den Pfad in der die Exe gespeichert ist}
 Try
  PfadConfig := PfadIni.ReadString ('Einstellungen''Pfad''');
   {Ließt aus Ini Datei den Pfad für die Config.udl}
   {1. Parameter ist die Sektion, 2. Parameter ist die Eigenschaft}
  PfadIni.UpdateFile;
 Finally
  PfadIni.Free;
   {Ini Datei wieder freigegeben}
 end;
 If PfadConfig = '' then
  {Wenn noch kein Pfad eingegeben wurde}
  begin
   Showmessage('Sie müssen den Pfad noch in die Ini-Datei eintragen');
   Close; {Schließt die Anwendung}
  end;
 If PfadConfig <> '' then
  {Wenn ein Pfad eingegeben wurde}
  begin
   ADODataSet1.Active                          := False;
   ADODataSet1.ConnectionString                := 'File Name='+PfadConfig+'\Config1.udl';
   FacilityForm.ADODataSet1.Active             := False;
   FacilityForm.ADODataSet1.ConnectionString   := 'File Name='+PfadConfig+'\Config1.udl';
   FacilityForm.ADODataSet2.Active             := False;
   FacilityForm.ADODataSet2.ConnectionString   := 'File Name='+PfadConfig+'\Config1.udl';
   FacilityForm.ADODataSet3.Active             := False;
   FacilityForm.ADODataSet3.ConnectionString   := 'File Name='+PfadConfig+'\Config1.udl';
   FacilityForm.ADODataSet4.Active             := False;
   FacilityForm.ADODataSet4.ConnectionString   := 'File Name='+PfadConfig+'\Config1.udl';
   FacilityForm.ADODataSet5.Active             := False;
   FacilityForm.ADODataSet5.ConnectionString   := 'File Name='+PfadConfig+'\Config1.udl';
   GeraeteTypForm.ADODataSet1.Active           := False;
   GeraeteTypForm.ADODataSet1.ConnectionString := 'File Name='+PfadConfig+'\Config1.udl';
   Stamm.ADODataSet1.Active                    := False;
   Stamm.ADODataSet1.ConnectionString          := 'File Name='+PfadConfig+'\Config1.udl';
   Stamm.ADODataSet1.Active                    := True;
   Stamm.ADODataSet2.Active                    := False;
   Stamm.ADODataSet2.ConnectionString          := 'File Name='+PfadConfig+'\Config1.udl';
   Stamm.ADODataSet3.Active                    := False;
   Stamm.ADODataSet3.ConnectionString          := 'File Name='+PfadConfig+'\Config1.udl';
   Stamm.ADODataSet4.Active                    := False;
   Stamm.ADODataSet4.ConnectionString          := 'File Name='+PfadConfig+'\Config1.udl';
   Stamm.ADODataSet5.Active                    := False;
   Stamm.ADODataSet5.ConnectionString          := 'File Name='+PfadConfig+'\Config1.udl';
   Stamm.ADODataSet6.Active                    := False;
   Stamm.ADODataSet6.ConnectionString          := 'File Name='+PfadConfig+'\Config1.udl';
   Stamm.ADODataSet7.Active                    := False;
   Stamm.ADODataSet7.ConnectionString          := 'File Name='+PfadConfig+'\Config1.udl';
   Stamm.ADODataSet8.Active                    := False;
   Stamm.ADODataSet8.ConnectionString          := 'File Name='+PfadConfig+'\Config1.udl';
   Stamm.ADODataSet9.Active                    := False;
   Stamm.ADODataSet9.ConnectionString          := 'File Name='+PfadConfig+'\Config1.udl';
   Stamm.ADODataSet10.Active                   := False;
   Stamm.ADODataSet10.ConnectionString         := 'File Name='+PfadConfig+'\Config1.udl';
   Stamm.ADODataSet11.Active                   := False;
   Stamm.ADODataSet11.ConnectionString         := 'File Name='+PfadConfig+'\Config1.udl';
   Stamm.ADODataSet12.Active                   := False;
   Stamm.ADODataSet12.ConnectionString         := 'File Name='+PfadConfig+'\Config1.udl';
   Stamm.ADODataSet13.Active                   := False;
   Stamm.ADODataSet13.ConnectionString         := 'File Name='+PfadConfig+'\Config1.udl';
   Stamm.ADODataSet14.Active                   := False;
   Stamm.ADODataSet14.ConnectionString         := 'File Name='+PfadConfig+'\Config1.udl';
   Stamm.ADODataSet15.Active                   := False;
   Stamm.ADODataSet15.ConnectionString         := 'File Name='+PfadConfig+'\Config1.udl';
   Stamm.ADODataSet16.Active                   := False;
   Stamm.ADODataSet16.ConnectionString         := 'File Name='+PfadConfig+'\Config1.udl';
   Suchform.ADODataSet1.Active                 := False;
   Suchform.ADODataSet1.ConnectionString       := 'File Name='+PfadConfig+'\Config1.udl';
   SuchGTypform.ADODataSet1.Active             := False;
   SuchGTypform.ADODataSet1.ConnectionString   := 'File Name='+PfadConfig+'\Config1.udl';  
    {Gibt den Pfad für die Verbindung an}
  end;
end;


Bin für Hinweise dankbar.

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt.
Moderiert von user profile iconNarses: Topic aus Datenbanken verschoben am So 04.04.2010 um 11:27


Gausi - Sa 03.04.10 15:12

Ist der andere Rechner zufällig einer mit Vista oder Windows7, und das Programm liegt im "Programme"-Ordner? Da darf nämlich nicht mehr geschrieben werden. ;-)


Der Schreckliche - So 04.04.10 14:35

Hallo Gausi,

nein ist ein Win XP oder Win 2000 Prof. Rechner und ist in "Eigene Dateien" gespeichert.

Gruß
Der Schreckliche


Tryer - So 04.04.10 14:50

Ist die Funktion vielleicht von Leerzeichen im Dateinamen abhängig? Mgl. das der Pfad im ConnectionString dann in Hochkommata oder Anführungszeichen gesetzt werden muss.

Oder wird die Inidatei nicht gefunden?

Grüsse, Dirk


ALF - So 04.04.10 15:08

Da man den Pfad manuell eintragen soll/muss finde ich das nicht gerade als guten Ansatz! (Schreibfehler :wink: )
An dieser Stelle

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
 If PfadConfig = '' then
  {Wenn noch kein Pfad eingegeben wurde}
  begin
   Showmessage('Sie müssen den Pfad noch in die Ini-Datei eintragen');
   Close; {Schließt die Anwendung}
  end;

würde ich auch Prüfen ob die Pfadangabe korrekt ist!
Wenn nicht, dann mit einem Dialog die Datei suchen lassen und den Korrekten Pfad in die AccessKonfig.ini eintragen!
PfadIni.UpdateFile hat an der Stelle wo es steht keine Wirkung und bringt auch nichts :wink:

Zumal du auch nicht sagts was nicht geht!
Findet er die 'AccessKonfig.ini' nicht! Oder an welcher Stelle gibt es Fehler!

Da Du das auf einem Fremdrechner nicht debuggen kannst, füge doch einfach mal 2 Labels ein und lass Dir die einzelnen Angaben der Pfade mal anzeigen!

Gruss ALf


Der Schreckliche - Di 06.04.10 18:20

Ich habe folgende Fehlermeldungen:
"Die Datei ist keine gültige Verbunddatei"
Eher selten sogar.
"Dateipfad nicht gefunden"

Mit den Label wewrde ich versuchen, gute Idee!


Gruß
Der Schreckliche


ALF - Di 06.04.10 19:00

Schau auch mal hier http://www.delphi-forum.de/viewtopic.php?t=98787 vor allen was user profile iconGausi geschrieben hat!
Der Fehler "Die Datei ist keine gültige Verbunddatei" muss aber nichts mit der ini zu tun haben, die Ursache kann auch in der DB anbinding liegen! Google mal :wink: gibt es einige Hinweise dafür!


Gruss Alf