![]() |
paramstr(1) geht nicht
Hey Leute.
Habe ein etwas umfanreicheres Programm. Nun möchte ich, dass die ini aus dem Ordner geholt wird, indem auch das Programm läuft. Dazu habe ich folgendes gemacht:
Delphi-Quellcode:
Dies funktioniert NICHT. Dann habe ich gleich zum Programmstart folgendes eingegeben:
procedure TForm1.FormCreate(Sender: TObject);
var ini:TInifile; begin ini:=TInifile.Create(paramstr(1)+'Settings.ini'); try [Anweisungen aus Ini] finally ini.free; end; end;
Delphi-Quellcode:
Es kommt eine Meldung mit einem leeren Fenster. Was ist da los. Vorher gings doch auch...
ShowMessage(paramstr(1));
Bitte helft mir |
Re: paramstr(1) geht nicht
Du meinst wohl ParamStr(0).
ParamStr(1) liefert den ersten Programm-Parameter, wenn Du die Datei direkt im Explorer öffnest, kann er nichts enthalten. |
Re: paramstr(1) geht nicht
wenn ich paramstr(0) einsetze, dann kommt die Meldung mit dem Programmpfad + dem aktuell geööfnetem Namen BSP:
C:\Pfad1\Programm.exe Wenn ich paramstr(0) einsetzen würde wäre dies das Ergebnis:
Delphi-Quellcode:
Er kann die Datei (C:\Pfad1\Programm.exeSettings.ini) nicht öffnen...
ini:=TInifile.Create(paramstr(0)+'Settings.ini');
|
Re: paramstr(1) geht nicht
Delphi-Quellcode:
Ini := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));
|
Re: paramstr(1) geht nicht
Du musst ExtractFilePath(ParamStr(0)) nehmen.
Man liest sich, Stanlay :hi: |
Re: paramstr(1) geht nicht
Nein, geht trotzdem nicht. :twisted:
|
Re: paramstr(1) geht nicht
Zitat:
...:cat:... |
Re: paramstr(1) geht nicht
Ganz genau das selbe, wie ich es oben beschrieben habe
wenn ich paramstr(0) einsetze, dann kommt die Meldung mit dem Programmpfad + dem aktuell geöfnetem Namen BSP: C:\Pfad1\Programm.exe Er kann die Datei (C:\Pfad1\Programm.exeSettings.ini) nicht öffnen... Momentan sieht's so aus
Delphi-Quellcode:
ar ini:TInifile;
top:String; begin Showmessage(paramstr(0)); ini:=TIniFile.Create(ExtractFilePath(ParamStr(0)+'settings.ini')); |
Re: paramstr(1) geht nicht
Hoi,
Delphi-Quellcode:
ich weis nicht ob du noch ein "\" nach dem ExtractFilePath setzten musst. Dann würde das Ganze so aussehen:
ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'settings.ini');
Delphi-Quellcode:
ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'\settings.ini');
|
Re: paramstr(1) geht nicht
Dann mach mal das hier daraus:
Delphi-Quellcode:
Du hast den Pfad von ParamStr(0)+'settings.ini' extrahiert.
ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'settings.ini');
|
Re: paramstr(1) geht nicht
Zitat:
Code:
...:cat:...
var ini:TInifile;
top:String; begin Showmessage(paramstr(0)); ini:=TIniFile.Create(ExtractFilePath(ParamStr(0)[color=#ff0000])[/color] + 'settings.ini'[color=#c0c0c0][s])[/s][/color]); |
Re: paramstr(1) geht nicht
Genau wieder der selbe Fehler.
Aber mal logisch gedacht.. Wenn ich in den Progammstart eines Programms
Delphi-Quellcode:
eingebe, dann gibt er mir IMMER den Pfad zurück, in dem das zu entwickelnde Programm ist.
ShowMessage(paramstr(1));
Warum gibt er mir in meinem Pogramm (nur in diesem) eine leere Messagebox wieder?? Da muss was dran faul sein... |
Re: paramstr(1) geht nicht
Das kann nicht sein, da der Programmpfad IMMER im Eintrag NULL steht.
Delphi-Quellcode:
...:cat:...
ShowMessage(ExtractFilePath(ParamStr(0)));
|
Re: paramstr(1) geht nicht
Sieh Dir auch dazu mal die OH zu ParamStr an.
|
Re: paramstr(1) geht nicht
@sakura: Ich möchte dir nicht zu Nahe treten, aber nach deiner Lösung sieht der Compiler so aus:
Delphi-Quellcode:
Was nun?
[Hinweis] Unit1.pas(155): Auf 'ExWindows' zugewiesener Wert wird niemals benutzt
[Hinweis] Unit1.pas(306): Auf 'ini' zugewiesener Wert wird niemals benutzt [Hinweis] Unit1.pas(304): Variable 'top' wurde deklariert, aber in 'TForm1.FormCreate' nicht verwendet [Fehler] Unit1.pas(306): 'END' erwartet, aber ')' gefunden [Fehler] Unit1.pas(307): ';' erwartet, aber 'TRY' gefunden [Fehler] Unit1.pas(358): '.' erwartet, aber ';' gefunden [Warnung] Unit1.pas(359): Text hinter dem abschließenden 'END.' wird vom Compiler ignoriert [Fehler] Unit1.pas(78): Ungenügende Forward- oder External-Deklaration: 'TForm1.Button1Click' [Fehler] Unit1.pas(79): Ungenügende Forward- oder External-Deklaration: 'TForm1.Button2Click' [Fehler] Unit1.pas(80): Ungenügende Forward- oder External-Deklaration: 'TForm1.Button3Click' [Fehler] Unit1.pas(81): Ungenügende Forward- oder External-Deklaration: 'TForm1.Button4Click' [Fehler] Unit1.pas(82): Ungenügende Forward- oder External-Deklaration: 'TForm1.Button5Click' [Fehler] Unit1.pas(83): Ungenügende Forward- oder External-Deklaration: 'TForm1.Button6Click' [Fehler] Unit1.pas(84): Ungenügende Forward- oder External-Deklaration: 'TForm1.Button7Click' [Fehler] Unit1.pas(85): Ungenügende Forward- oder External-Deklaration: 'TForm1.Button8Click' [Fehler] Unit1.pas(86): Ungenügende Forward- oder External-Deklaration: 'TForm1.Button9Click' [Fehler] Unit1.pas(87): Ungenügende Forward- oder External-Deklaration: 'TForm1.Button10Click' [Fehler] Unit1.pas(88): Ungenügende Forward- oder External-Deklaration: 'TForm1.Button11Click' [Fehler] Unit1.pas(89): Ungenügende Forward- oder External-Deklaration: 'TForm1.Button12Click' [Fehler] Unit1.pas(90): Ungenügende Forward- oder External-Deklaration: 'TForm1.Button13Click' [Fehler] Unit1.pas(91): Ungenügende Forward- oder External-Deklaration: 'TForm1.Button14Click' [Fehler] Unit1.pas(92): Ungenügende Forward- oder External-Deklaration: 'TForm1.Button15Click' [Fehler] Unit1.pas(93): Ungenügende Forward- oder External-Deklaration: 'TForm1.Button16Click' [Fehler] Unit1.pas(94): Ungenügende Forward- oder External-Deklaration: 'TForm1.Button17Click' [Fehler] Unit1.pas(95): Ungenügende Forward- oder External-Deklaration: 'TForm1.Button18Click' [Fehler] Unit1.pas(96): Ungenügende Forward- oder External-Deklaration: 'TForm1.Systemsteuerung1Click' [Fehler] Unit1.pas(97): Ungenügende Forward- oder External-Deklaration: 'TForm1.Defragmentieren1Click' [Fehler] Unit1.pas(98): Ungenügende Forward- oder External-Deklaration: 'TForm1.Abmelden1Click' [Fehler] Unit1.pas(99): Ungenügende Forward- oder External-Deklaration: 'TForm1.MSDOSEingabeaufforderung1Click' [Fehler] Unit1.pas(100): Ungenügende Forward- oder External-Deklaration: 'TForm1.Registrierungseditorregeditffnen1Click' [Fehler] Unit1.pas(101): Ungenügende Forward- oder External-Deklaration: 'TForm1.askmanager1Click' [Fehler] Unit1.pas(102): Ungenügende Forward- oder External-Deklaration: 'TForm1.ServiceDienste1Click' [Fehler] Unit1.pas(103): Ungenügende Forward- oder External-Deklaration: 'TForm1.DateienundOrdnersichern1Click' [Fehler] Unit1.pas(104): Ungenügende Forward- oder External-Deklaration: 'TForm1.AlwaysonTop1Click' [Fehler] Unit1.pas(105): Ungenügende Forward- oder External-Deklaration: 'TForm1.N800x60060Herz1Click' [Fehler] Unit1.pas(106): Ungenügende Forward- oder External-Deklaration: 'TForm1.N800x60070Herz1Click' [Fehler] Unit1.pas(107): Ungenügende Forward- oder External-Deklaration: 'TForm1.N1024x76860Herz1Click' [Fehler] Unit1.pas(108): Ungenügende Forward- oder External-Deklaration: 'TForm1.N1024x76870Herz1Click' [Fehler] Unit1.pas(109): Ungenügende Forward- oder External-Deklaration: 'TForm1.N1152x86460Herz1Click' [Fehler] Unit1.pas(110): Ungenügende Forward- oder External-Deklaration: 'TForm1.N1152x86470Herz1Click' [Fehler] Unit1.pas(111): Ungenügende Forward- oder External-Deklaration: 'TForm1.Gertemanager1Click' [Fehler] Unit1.pas(112): Ungenügende Forward- oder External-Deklaration: 'TForm1.Soundcontrol1Click' [Fehler] Unit1.pas(113): Ungenügende Forward- oder External-Deklaration: 'TForm1.Timer1Timer' [Fehler] Unit1.pas(114): Ungenügende Forward- oder External-Deklaration: 'TForm1.Hintergrundbild1Click' [Fehler] Unit1.pas(115): Ungenügende Forward- oder External-Deklaration: 'TForm1.PasswortfrSystemsperre1Click' [Fehler] Unit1.pas(116): Ungenügende Forward- oder External-Deklaration: 'TForm1.Button19Click' [Fehler] Unit1.pas(119): Ungenügende Forward- oder External-Deklaration: 'TForm1.ApplicationEvents1Deactivate' [Fehler] Unit1.pas(120): Ungenügende Forward- oder External-Deklaration: 'TForm1.ApplicationEvents1Activate' [Fehler] Unit1.pas(121): Ungenügende Forward- oder External-Deklaration: 'TForm1.FormClick' [Fehler] Unit1.pas(122): Ungenügende Forward- oder External-Deklaration: 'TForm1.Image1Click' [Fehler] Unit1.pas(123): Ungenügende Forward- oder External-Deklaration: 'TForm1.FormCloseQuery' [Fehler] Unit1.pas(124): Ungenügende Forward- oder External-Deklaration: 'TForm1.Timer2Timer' [Fehler] Unit1.pas(125): Ungenügende Forward- oder External-Deklaration: 'TForm1.Papierkorbleeren1Click' [Fehler] Unit1.pas(126): Ungenügende Forward- oder External-Deklaration: 'TForm1.Windowbeenden1Click' [Fehler] Unit1.pas(127): Ungenügende Forward- oder External-Deklaration: 'TForm1.Windowsneubooten1Click' [Hinweis] Unit1.pas(129): Das private-Symbol 'FCanClose' wurde deklariert, aber nie verwendet [Fehler] Unit1.pas(130): Ungenügende Forward- oder External-Deklaration: 'TForm1.WMWindowPosChanging' [Fataler Fehler] bar.dpr(7): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden |
Re: paramstr(1) geht nicht
Diese Fehlermeldungen stammen aber bestimmt nicht aus sakuras Code. Dafür ist er viel zu kurz :wink:
|
Re: paramstr(1) geht nicht
Ja ne is klar. Es sollte nur meine Verzweiflung ausdrücken... Was soll ich machen???
|
Re: paramstr(1) geht nicht
Liste der Anhänge anzeigen (Anzahl: 1)
:roll: Ich weiss ja nicht, was Du gemacht hast, aber ein einfaches Copy&Paste funktioniert bei mir einwandfrei
Demo im Anhang. ...:cat:... |
Re: paramstr(1) geht nicht
Die Prozedur posten, Du hast irgendwo ein zeichen vergessen
|
Re: paramstr(1) geht nicht
Code:
Sakuras Klammersetzung war schon richtig, du mußt aber ncht nur die fehlende Klammer ergänzen,sondern auch die Überflüssige am ende der zeile entfernen.
[Fehler] Unit1.pas(306): 'END' erwartet, aber ')' gefunden
Woki |
Re: paramstr(1) geht nicht
Ok,
wie kann ich das jetzt Beschreiben? IHR SEID DIE BESTEN Es funzt jetzt genau das, was ich ohne euch net hinbekommen habe... Bei Gelegenheit verleiehe ich euch nochmal einen Orden... *sichgedankenmach(alles wegen einer Klammer)* BIGTHX |
Re: paramstr(1) geht nicht
Es gibt einen Orden :mrgreen:
:dp: ...:cat:... |
Re: paramstr(1) geht nicht
Moin sakura,
ist zwar massiv OT aber: Der "Orden" ist klasse :D Jedesmal wenn ich den stelle ich mir den als Anstecknadel vor ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz