Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Überprüfen ob Datei vorhanden ist... (https://www.delphipraxis.net/59148-ueberpruefen-ob-datei-vorhanden-ist.html)

Knotti2005 18. Dez 2005 11:37


Überprüfen ob Datei vorhanden ist...
 
Hallo Leute,

ich suche eine Methode um zu Überprüfen ob 2 Dateien vorhanden sind list1.txt und list2.txt wie realisiere ich das?



Danke im Voraus...

Jelly 18. Dez 2005 11:40

Re: Überprüfen ob Datei vorhanden ist...
 
Guckst Du in der Delphi Hilfe nach FileExists

Knotti2005 18. Dez 2005 11:43

Re: Überprüfen ob Datei vorhanden ist...
 
Danke :oops:

Knotti2005 18. Dez 2005 12:15

Re: Überprüfen ob Datei vorhanden ist...
 
Neue Frage...

ich hab es jetzt so gemacht...

Delphi-Quellcode:
if FileExists('.\list1.txt') then dxbutton1.Enabled := true
else
dxbutton1.Caption:= 'FEHLER';

Wie bringe ich noch die 2. Datei hinein?...

heiopei 18. Dez 2005 12:19

Re: Überprüfen ob Datei vorhanden ist...
 
hallo,
genauso:

Delphi-Quellcode:
  if FileExists('.\list1.txt') then
    dxbutton1.Enabled := true
  else
  dxbutton1.Caption:= 'FEHLER';
  if FileExists(.\list2.txt') then
    dxbutton2.Enabled := true
  else
  dxbutton2.Caption := 'FEHLER'...

Waldteufel 18. Dez 2005 12:22

Re: Überprüfen ob Datei vorhanden ist...
 
Hi.

@heiopei: Ich glaube, er will eher den Button erst enablen, wenn beide Dateien vorhanden sind.

Also so:
Delphi-Quellcode:
  if FileExists('.\list1.txt') and FileExists('.\dateinummerzwei.txt') then
    dxbutton1.Enabled := true
  else dxbutton1.Caption:= 'FEHLER';

heiopei 18. Dez 2005 12:22

Re: Überprüfen ob Datei vorhanden ist...
 
tja dann...

Knotti2005 18. Dez 2005 12:28

Re: Überprüfen ob Datei vorhanden ist...
 
Danke ...

Ich hab immernoch ein Problem ich will mit dem Code unterdrücken das Form2 aufgerufen werden kann dort werden mithilfe von...

Delphi-Quellcode:
E.LoadFromFile('.\list1.txt');
die Dateien in Stringlisten geladen werden. Leider gibt er mir schon beim Starten die Meldung das die Dateien nicht vorhanden sind und das Programm stürzt leider ab...

:pale: :pale: :pale:

Luckie 18. Dez 2005 12:45

Re: Überprüfen ob Datei vorhanden ist...
 
Wird wohl daran liegen, dass er die Datei da sucht, wo er suchen soll, nämlich im aktuellen Arbeitsverzeichnis. Und das muss eben nicht das Programmverzeichnis sein.

Knotti2005 18. Dez 2005 12:48

Re: Überprüfen ob Datei vorhanden ist...
 
Die Datein liegen ja da Drinne eigentlich...

Ich will aber für den Fall das sie mal nicht da sein sollten, nicht gleich den User mit jede Menge Fehlermeldungen konfronterieren...

:roll:

Luckie 18. Dez 2005 12:52

Re: Überprüfen ob Datei vorhanden ist...
 
Ich muss mich noch mal zitieren:

Zitat:

Zitat von Luckie
Wird wohl daran liegen, dass er die Datei da sucht, wo er suchen soll, nämlich im aktuellen Arbeitsverzeichnis. Und das muss eben nicht das Programmverzeichnis sein.

Man beachte die Hervorhebung. Wo liegt denn die Datei bzw. soll sie denn eiegntlich liegen?

Knotti2005 18. Dez 2005 12:56

Re: Überprüfen ob Datei vorhanden ist...
 
Aso... Sie liegen im Selben Ordner wie auch die EXE Datei dies kann aber von PC zu PC unterschiedlich sein...

Es kann ja mal passieren das irgenteiner die Datei löscht dann soll halt das Programm bis zur Form1 laufen wo dann halt der Button nicht klickbar ist...

Und nicht schon vorher abstürzen...

DGL-luke 18. Dez 2005 12:56

Re: Überprüfen ob Datei vorhanden ist...
 
@Luckie: Er meint, "was mache ich, wenn die Datei nicht da ist"

Delphi-Quellcode:
if not FileExists('file.txt') then
  button_der_die_form2_aufruft.enabled := false;

Ratte 18. Dez 2005 12:57

Re: Überprüfen ob Datei vorhanden ist...
 
So müsste es stimmen:
Delphi-Quellcode:
if FileExists(ExtractFileDir(ParamStr(0)) +'\list1.txt') and FileExists(ExtractFileDir(ParamStr(0)) +'\list2.txt') then
    dxbutton1.Enabled := true
  else dxbutton1.Caption:= 'FEHLER';
mfg,
Ratte

EDIT: ' zuviel

Knotti2005 18. Dez 2005 13:19

Re: Überprüfen ob Datei vorhanden ist...
 
das geht doch alles es kommt nur wenn ich eine der dateien absichtlich lösche bekomme ich von windows eine fehlermeldung ohne das ich die form also das programm überhaupt gesehen habe...

r2c2 18. Dez 2005 14:11

Re: Überprüfen ob Datei vorhanden ist...
 
Zitat:

Zitat von Knotti2005
das geht doch alles...

Ähm... unter den momentanen Umständen ja. Bau malo n openDialog ein, wechsel da mal das Verzeichnis und du wirst dich wundern... Deshalb: Niemals relative Pfade verwenden!

Zitat:

es kommt nur wenn ich eine der dateien absichtlich lösche bekomme ich von windows eine fehlermeldung ohne das ich die form also das programm überhaupt gesehen habe...
Aber nicht in der Zeile oder?

mfg

Christian

Ratte 18. Dez 2005 15:04

Re: Überprüfen ob Datei vorhanden ist...
 
Seltsam. Bist du sicher dass du vorher nie auf die Datei zugreifst?

Ratte

Knotti2005 18. Dez 2005 15:06

Re: Überprüfen ob Datei vorhanden ist...
 
Nein bin ich nicht ichg greufe in der Form1 nicht auf die Datei zu aber in Form2 mit LoadFromFile....

Ist okay ich lass es einfach so....
Ich glaube ich kann es nicht so richtig erklären egal...

Danke für eure mühe

r2c2 19. Dez 2005 12:36

Re: Überprüfen ob Datei vorhanden ist...
 
Zitat:

Zitat von Knotti2005
Nein bin ich nicht ichg greufe in der Form1 nicht auf die Datei zu aber in Form2 mit LoadFromFile....

Zeig mal n bisschen von deinem Code her. Das sollte sich doch finden lassen...

mfg

Christian

Tyrael Y. 19. Dez 2005 12:47

Re: Überprüfen ob Datei vorhanden ist...
 
...so sieht es bissel übersichtlicher aus, oder?

Delphi-Quellcode:
  dxbutton1.Enabled := (FileExists(ExtractFileDir(ParamStr(0)) +'\list1.txt')) and    (FileExists(ExtractFileDir(ParamStr(0)) +'\list2.txt'));

Knotti2005 19. Dez 2005 14:51

Re: Überprüfen ob Datei vorhanden ist...
 
Ich hab erstmal alles Rausgenommen was hier so an Cods gefallen ist...

Form1...


Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Buttons, XPMenu, jpeg, dxCore, dxButtons;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    dxButton1: TdxButton;
    Image1: TImage;
    procedure dxButton1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.dxButton1Click(Sender: TObject);
begin
  form2.show;
  form1.hide;
end;
end.
Hier sollte das Kommen mit den Labels....


Form2 das möchte ich euch nicht antuen ... also nicht der ganze code...

Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);

  var
  i: Integer;
  E, E2: TStringList;
begin
  E:=TStringList.Create;   //Datei 1
  E.LoadFromFile('.\list1.txt');
  E2:=TStringList.Create;  //Datei 2
  E2.LoadFromFile('.\list2.txt');
  memo1.items:= E;
  memo2.items:= E2;
    E.Free;
      E2.Free;
   dxstatusbar1.panels[2].Text:= 'Seatplan bereit...';
  for i := 1 to 24 do
 TEdit(FindComponent('Edit' + IntToStr(i))).clear;
end;

Ratte 19. Dez 2005 15:41

Re: Überprüfen ob Datei vorhanden ist...
 
dort solltest du logischerweise auch
Delphi-Quellcode:
ExtractFileDir(ParamStr(0)) +'\list1.txt'
//bzw
ExtractFileDir(ParamStr(0)) +'\list2.txt'
einfügen. (beim Laden der Stringlists)

Ratte

lizardking 19. Dez 2005 15:50

Re: Überprüfen ob Datei vorhanden ist...
 
Ich denke mal zuerst die automatische Form-Instanziierung fuer Form2 abschalten :

Project->Options->Forms

und dort Form 2 aus dem Auto-Create rausnehmen. Wenn das naemlich bei Programmstart direkt erstellt wird und im Constructor schon auf die Dateien zugegriffen wird, ist das kein Wunder, dass da Fehler passieren ;-)

Ratte 19. Dez 2005 15:56

Re: Überprüfen ob Datei vorhanden ist...
 
@lizardking: An was mann alles denke muss...
@Knotti: Schiebs's am einfachsten ins OnShow.

Knotti2005 19. Dez 2005 16:46

Re: Überprüfen ob Datei vorhanden ist...
 
Das ist es!!!!!!

So stimmt es


Danke


:wall: :wall: :wall: :wall:


:thumb: :thumb: :thumb:

Knotti2005 19. Dez 2005 16:59

Re: Überprüfen ob Datei vorhanden ist...
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zu früh gefreut jetzt stimmt es soweit aber


Wenn beide Datein da sind und ich zur Form 2 wechsel möchte bekomme ich einen Schutzfehler, allerdings weis ich nicht was jetzt der Fehler ist...

Ich habe nur bei Hauptforumlar Form1 die Form2 nach rechts gestellt...


@was meint ihr mit OnShow?

Wenn ich die Form 2 wieder hinzufüge geht es wieder...

Ratte 19. Dez 2005 17:19

Re: Überprüfen ob Datei vorhanden ist...
 
mit dem OnShow: vergiss es, könnte murks geben
Du must vor dem form2.show noch
Delphi-Quellcode:
Form2:=TForm2.create;
einfügen. (glaube ich zumindest)

mfg,

Ratte

r2c2 19. Dez 2005 17:22

Re: Überprüfen ob Datei vorhanden ist...
 
Zitat:

Zitat von Knotti2005
Ich habe nur bei Hauptforumlar Form1 die Form2 nach rechts gestellt...
...
Wenn ich die Form 2 wieder hinzufüge geht es wieder...

Wenn du Form2 aus dem AutoCreate rausnimmst, musst du sie selbst erzeugen. Lass die Form also einfach da drin und schreib den Code nicht in OnCtreate, sondern in OnShow.

Die relativen Pfade solltest du trotzdem noch durch absolute ersetzen. Wenn ich das oft machen muss, dann bin ich schreibfaul und mach das einfach so:
Delphi-Quellcode:
initialization
  Path := ExtrachtFilePath(ParamStr(0));
Dann muss man nur noch "Path" schreiben...

//Nachtrag:
Wo war der Rote Kasten?

Zitat:

mit dem OnShow: vergiss es, könnte murks geben
Wieso? Ich steh momentan scheinbar auf der Leitung...

mfg

Christian

Knotti2005 19. Dez 2005 17:35

Re: Überprüfen ob Datei vorhanden ist...
 
Jetzt gehts danke....

:thumb:

Ratte 19. Dez 2005 18:06

Re: Überprüfen ob Datei vorhanden ist...
 
Wenn er das Fenster zeitweilig verlässt und wieder anzeigt, ändert sich die Liste, falls er sie modifiziert hat oder auf einen bestimmten index zugreifen will und das könnte Probleme geben. Dafür kenn eich sein Programm nicht gut genug um das beurteilen zu können. Mit OnCreate ist sicher besser.

r2c2 20. Dez 2005 12:34

Re: Überprüfen ob Datei vorhanden ist...
 
Zitat:

Zitat von Ratte
Wenn er das Fenster zeitweilig verlässt und wieder anzeigt, ändert sich die Liste, falls er sie modifiziert hat oder auf einen bestimmten index zugreifen will und das könnte Probleme geben. Dafür kenn eich sein Programm nicht gut genug um das beurteilen zu können.

Wenn er das Fenster verlässt? Wenn er es schließt und wieder neu anzeigt(mit Show; oder ShowModal; ) ja. Aber auch da kann man n Flag setzen...

mfg

Christian


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:03 Uhr.

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