Autor Beitrag
Jojojoxx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 386



BeitragVerfasst: So 22.05.05 13:08 
Hallo an alle! Bin neu hier! :-)

Ich habe folgendes Problem. Ich möchte, dass man eine Datei per OpenDialog auswählen kann, diese Datei soll dann mit komplettem Pfad in einem Textfeld angezeigt werden. Das klappt auch, allerdings nur bei Dateien, die in dem selben Verzeichnis liegen, wie die Programm-Exe-Datei. Ansonsten schmeißt mir Delühi folgende Fehlermeldung an den Kopf:

user defined image

Mein Code sieht folgendermaßen aus:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm2.Button2Click(Sender: TObject);

begin
opendialog1.Execute;

edit2.text:=Opendialog1.filename;
end;


Danke für eure Hilfe!!!

mfg

Jojo

Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt.
matze.de
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 576

Win95, Win98 SE, WinXp Prof SP2
D7P, D8P, FPC2.0
BeitragVerfasst: So 22.05.05 13:59 
Probiers ma so:
ausblenden Delphi-Quelltext
1:
2:
if OpenDialog1.Execute then
  showmessage(OpenDialog1.FileName);


mfg matze :)

_________________
si tacuisses, philosophus mansisses.
Jojojoxx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 386



BeitragVerfasst: So 22.05.05 14:24 
Hi!

Danke für deine Antwort, leider funktioniert es so immernoch nicht, hier ist mal mein jetziger Code:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm2.Button2Click(Sender: TObject);

begin
if opendialog1.Execute then
edit2.text:=Opendialog1.filename;

end;


und

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure TForm2.Edit2Change(Sender: TObject);
var Datei: TextFile;
    Zeile1, Zeile2, Zeile3:String;
begin

AssignFile(Datei, 'config.ini');
ReSet(Datei); //Öffnen
ReadLn(Datei, Zeile1);
ReadLn(Datei, Zeile2);
ReadLn(Datei, Zeile3);
CloseFile(Datei); //Schließt die Datei

if edit2.text=Zeile3 then
button1.enabled:=False
else
button1.enabled:=True;
end;


Danke euch!
mfg

Jojo

Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt.
Blackheart
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 164

ME
D3Prof.-D6Standard
BeitragVerfasst: So 22.05.05 14:59 
Also dein Code stimmt ! Was hast du denn in deiner Datei in der Dritten Zeile zu stehen.
Du solltest mal den Kompletten Pfad der im Edit steht in die Dritte zeile deiner Datei schreiben dann klappts auch.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 22.05.05 14:59 
Dann liegt der Fehler nicht am OpenDialog, sondern deine zweite Prozedur findet die Datei "config.ini" nicht. Das hat IMHO nur zwei Ursachen:

1. Die Datei existiert nicht. Abhilfe: Mit FileExists (s. Hilfe) prüfen
2. Du hast vergessen, den Ordner der Datei anzugeben, denn durch die Benutzung des OpenDialogs ändert sich das Arbeitsverzeichnis, und wenn ich raten darf: Deine "config.ini" liegt im gleichen Ordner wie dein Delphiprogramm.


Versuche es bitte mit beiden Lösungen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
if not FileExists(ExtractFilePath(paramstr(0)) + 'config.ini') then exit;

{$I-}
AssignFile(Datei, ExtractFilePath(paramstr(0)) + 'config.ini');
{ ... }
CloseFile(Datei);
{$I+}
Jojojoxx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 386



BeitragVerfasst: So 22.05.05 15:29 
Hi!

Achso, das kann natürlich sein. Aber wie kriege ich denn das Verzeichnis raus, in dem meine Projektdatei (also die Exe) läuft, kann ja immer unterschiedlich sein und ich will da ja auch kein festes Verzeichnis angeben...
Gibts da eine Möglichkeit das herauszufinden???

Jojo
rossinie
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 19



BeitragVerfasst: So 22.05.05 15:32 
wenn du das verzeichnis rausfinden willst, wo die datei liegt, die grad asugeführt wird dann ists logischer weise immer das
verzeichnis = './'
=)
Jojojoxx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 386



BeitragVerfasst: So 22.05.05 15:54 
Hi!

Mhh, aber irgendwie klappt das bei mir nicht, wo liegt denn dann hier der Fehler??

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm2.Edit2Change(Sender: TObject);
var Datei: TextFile;
    Zeile1, Zeile2, Zeile3:String;
begin
AssignFile(Datei, './config.ini');
ReSet(Datei); //Öffnen für Lesezugriff
ReadLn(Datei, Zeile1);
ReadLn(Datei, Zeile2);
ReadLn(Datei, Zeile3);
CloseFile(Datei); //Schließen


Ich will auf die Datei "config.ini" zugreifen, die im Programmverzeichnis liegt...

mfg
Jojo

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt.
rossinie
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 19



BeitragVerfasst: So 22.05.05 15:56 
ersetz:
AssignFile(Datei, './config.ini');
durch:
AssignFile(Datei, 'config.ini');

sollt aber keine änderung ergeben,muesste gehn
Jojojoxx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 386



BeitragVerfasst: So 22.05.05 16:03 
Hi!

das Problem wenn ich AssignFile(Datei, 'config.ini'); schreib, dann findet er diese nicht, d.h. ich muss noch den Pfad zu meinem Programm angeben, da der aber ja imer anders sein kann muss ich den entweder auslesen lassen oder wie du gesagt hast als './' definieren, aber wie binde ich das dann richtig ein... :?:

Jojo
StefanH
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1144

Win XP
D5 Standard, D7 Pers, D2005 Pers
BeitragVerfasst: So 22.05.05 16:25 
user profile iconJojojoxx hat folgendes geschrieben:
... d.h. ich muss noch den Pfad zu meinem Programm angeben, da der aber ja imer anders sein kann muss ich den entweder auslesen lassen ...


hat user profile iconMathiasSimmack doch schon geschrieben: ExtractFilePath(ParamStr(0))

_________________
"Als es noch keine Computer gab, war das Programmieren noch relativ einfach."(Edsger W. Dijkstra)
"Ich bin nicht von Sinnen, sondern ich rede wahre und vernünftige Worte." (Paulus)
Jojojoxx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 386



BeitragVerfasst: So 22.05.05 16:33 
Ohh, Sorry, hab ich übersehen!
So klappt es!
Danke euch!!!

mfg

Jojo
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 22.05.05 22:56 
user profile iconrossinie hat folgendes geschrieben:
AssignFile(Datei, 'config.ini');

Womit er wieder bei seinem ursprünglichen, fehlerhaften Code angekommen wäre. :roll:

Warum hört hier eigentlich niemand auf mathias oder liest zu mindest seine Beiträge durch. Er hat erstens beschriebenm, was passiert und warum es nicht geht und hat, meiner Meinung nach, die einzig vernünftige Lösung präsentiert.
Jojojoxx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 386



BeitragVerfasst: So 22.05.05 23:14 
Hat doch alles geklappt, wie ich oben geschrieben habe...

Jojo