Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ini file wird nicht erstellt+fehlermeldung bei write string (https://www.delphipraxis.net/78110-ini-file-wird-nicht-erstellt-fehlermeldung-bei-write-string.html)

Andidreas 29. Sep 2006 07:23


ini file wird nicht erstellt+fehlermeldung bei write string
 
aloha

hab grad ein kleine problem, arbeite gerade an einer anwendung mit einer login form...
wird ein benutzername eingegeben der in eine bestimmten directory noch nicht vorhanden ist, dann soll eine neue .ini datei erstellt werden...

jetzt hab ich 2 probleme...

1.) die .ini datei wird mir nicht erstellt (ich vermute mal das es daran lag das ich eine leere .ini datei erstellen wollte)

2.) aufgrund der in 1. angesprochenen vermutung wollt ich in die .ini datei mit writestring was reinschreiben, aber hier bekomm ich dann folgenden fehler beim kompelieren: [Fehler] Project_login.pas(67): E2076 Diese Form des Methodenaufrufs ist nur für Klassenmethoden erlaubt

weiß jemand woran das liegen könnte???

hier die prozedur:

Delphi-Quellcode:
procedure TLogin_Form.xpbtn_loginClick(Sender: TObject);

var
blEntry, blFile : Boolean;
sPath          : String;
Ini            : TIniFile;


begin

  blEntry := True;
  sPath := ExtractFilePath(Application.ExeName);

  //ShowMessage(sPath);

  If (edt_user.Text = '') Or (edt_password.Text = '') Then
  Begin
    MessageDlg('User or Password is Missing!' + #13 + 'Please Insert all Informations!',
               mtError, [mbOk], 0);
    blEntry := False;
  End;

  If blEntry = True Then
  Begin

    blFile := FileExists(sPath + 'UserProfiles\' + edt_user.Text + '.ini');

    If blFile = False Then
    Begin
      //ShowMessage(sPath + 'UserProfiles\' + edt_user.Text + '.ini');
      Ini := TIniFile.Create(sPath + 'UserProfiles\' + edt_user.Text + '.ini');
      Ini := TIniFile.WriteString('UserInformation', 'UserName:', edt_user.Text);
      Ini.Free;
    End;

  End;


end;
die login_form ruf ich aus meine main_form wie folgt auf:
Delphi-Quellcode:
  Application.CreateForm(TLogin_Form, Login_Form);
  Login_Form.ShowModal;
würde mich freuen wenn mir hier jemand weiterhelfen kann :thumb:

TAC 29. Sep 2006 07:39

Re: ini file wird nicht erstellt + fehlermeldung bei write s
 
Moin,

wenn statt
Delphi-Quellcode:
blEntry := False;
ein exit; steht, kann eigentlich die Variable blEntry entfallen.

Dann gehst Du ja nur in das Create, wenn das File nicht existier, dann sollte hier ein
Delphi-Quellcode:
Forcedirectories(pfad)
mit rein, damit alle nichjt vorhandenen Unterverzeichnisse erzeugt werden. Das macht, glaube ich, das Ini.Create nicht.
Dann sollte es eigentlich funzen.

Grüße
tac

Andidreas 29. Sep 2006 07:45

Re: ini file wird nicht erstellt + fehlermeldung bei write s
 
danke für die antwort TAC

das mit dem Exit; werd ich mal ausprobieren...

aber mein pfad zu ich doch schon richtig ermitteln!
Delphi-Quellcode:
sPath := ExtractFilePath(Application.ExeName)
ermittelt mir ja das directory der .exe
da wo sich die .exe befindet hab ich einen ordner der sich UserProfiles nennt, denn häng ich dann noch im create befehl für die .ini mit hinten drann und schon hab ich mein komplette directory...
müsste doch stimmen oder seh ich das falsch?

marabu 29. Sep 2006 07:54

Re: ini file wird nicht erstellt + fehlermeldung bei write s
 
Hallo Andreas,

schau mal genau hin und vergleiche:

Delphi-Quellcode:
procedure TLogin_Form.xpbtn_loginClick(Sender: TObject);
var
  blEntry     : Boolean;
  fn, sPath   : TFileName;
  Ini         : TMemIniFile;
begin
  blEntry := True;
  sPath := ExtractFilePath(Application.ExeName);

  If (edt_user.Text = '') Or (edt_password.Text = '') Then
  Begin
    MessageDlg('User or Password is Missing!' + #13 + 'Please Insert all Informations!',
               mtError, [mbOk], 0);
    Exit;
  End;

  fn := sPath + 'UserProfiles\' + edt_user.Text + '.ini';

  If not FileExists(fn) Then
  Begin
    Ini := TMemIniFile.Create(fn);
    Ini.WriteString('UserInformation', 'UserName', edt_user.Text);
    Ini.UpdateFile;
    Ini.Free;
  End;
end;
Grüße vom marabu

Blackheart 29. Sep 2006 08:01

Re: ini file wird nicht erstellt+fehlermeldung bei write str
 
Hallo 1
Lass Dir mal sPath zurückgeben mit ShowMessage zb. vieleicht fehlt hier auch
Ini := TIniFile.Create(sPath + '\' + 'UserProfiles\' + edt_user.Text + '.ini');

Luckie 29. Sep 2006 08:11

Re: ini file wird nicht erstellt+fehlermeldung bei write str
 
TAC: 0 Punkte
marabu: 1 Punkt
Blackheart: 0 Punkte
:mrgreen:

Andidreas 29. Sep 2006 08:34

Re: ini file wird nicht erstellt+fehlermeldung bei write str
 
:( ich hab meine prozedure auf marabus vorschlag umgeschrieben...

funkt aber immer noch net :(

krieg folgende fehlermeldung:
1) [Fehler] Project1_login.pas(59): E2010 Inkompatible Typen: 'TMemIniFile' und 'TIniFile'
2) [Fehler] Project1_login.pas(61): E2076 Diese Form des Methodenaufrufs ist nur für Klassenmethoden erlaubt

marabu 29. Sep 2006 08:44

Re: ini file wird nicht erstellt+fehlermeldung bei write str
 
Ein weiterer Schreibfehler von mir - jetzt ist er korrigiert.

marabu

Andidreas 29. Sep 2006 08:52

Re: ini file wird nicht erstellt+fehlermeldung bei write str
 
ok der erste fehler is weg...

der 2. fehler is immer noch da, und .ini datei wird nicht erstellt...

kann es sein das delphi ein problem hat auf usb-sticks .ini dateien zu stellen...?
oder
gibt es probleme wenn im pfad leerzeichen enthalten sind....?

volkerw 29. Sep 2006 09:03

Re: ini file wird nicht erstellt+fehlermeldung bei write str
 
Hallo Andreas,
bis jetzt lagen die Daten nur im Speicher, füge vor dem Ini.Free ein
Delphi-Quellcode:
Ini.UpdateFile;
ein, dann hast Du auch eine Datei.
Gruß Volker


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:28 Uhr.
Seite 1 von 2  1 2      

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