AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Herausfinden ob eine Datei existiert

Ein Thema von JimmyB · begonnen am 23. Sep 2022 · letzter Beitrag vom 26. Sep 2022
Antwort Antwort
Benutzerbild von BMI
BMI

Registriert seit: 16. Jul 2010
58 Beiträge
 
Delphi 2 Desktop
 
#1

AW: Ich glaube die Frage ist einfach aber.....

  Alt 23. Sep 2022, 23:42
Alternativ mal mit einem OpenFileDialog an die Sache rangehen. Vielleicht ist ja wie Rolf schon schrieb keine Berechtigung vorhanden oder Du hast einen Tippfehler in deinem Hardcodet string drinn.
ja, find ich ansich gut.

ganz generell ..
OpenFileDialog ... und ähnliche Dialoge:
(nur mal noch so als persönliche Bemerkung
Also den Nutzer bei der Pfadsuche unterstützend finde ich ja gut.
Daß sie auch dem Programmierer ermöglichen den korrekten Pfad zu ermitteln und sicherzustellen, daß der Pfad auch konform angegeben wurde (kein 'C;\' oder 'C:\\Dokumente\' oder "C:\Dokumente", wenn man als Programmierer später zum Speichern an 'C:\Dokumente' noch 'Datei1.txt' für 'C:\Dokumente\Datei1.txt' dranhängen möchte.
Wenn man sich als Nutzer aber durch einen Pfad zum richigen Ordner 'C:\Dokumente\Nutzer\Karl\privat\Chor3\Vorstand\in terna\Kassenwart\Planung\2022\September\22\Abends\ Fahrt\Busreise\Vorkasse\' als Tree 16x klicken muß, statt einfach den Pfad per copy&paste direkt eingeben kann, (falls man den zur Hand hat), nur weil der Programmierer den Pfad nicht auf Fehler ('C:\pfad'+'datei.txt', 'C:\\da' s.o.) checken möchte ist das manchmal für den Anwender eine Tortur, v.a. wenn das Programm des Mal beim Speichern oder Laden wieder den Dialog bei 'C:\' beginnen läßt ...
Keepass, xmediaRecode und noch einige andere machen das so. Und man hat keine Möglichkeit jedes Mal den langen Pfad aus der Zwischenablage einzugeben ...

Man sollte auch an den Nutzer denken, der evtl. auch erfahrener ist und
ggf. mehrmals Pfade zum Speichern eingeben zum schnelleren Navigieren möchte und das Laden und Speichern ggf. freundlicher gestalten.
oder per Ini Pfade editierbar vorgeben können.

nur mal so nebenbei ... LG
eine Signatur? - im Jahr 2025? - WOZU ?!!!

Geändert von BMI (23. Sep 2022 um 23:50 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.588 Beiträge
 
Delphi 12 Athens
 
#2

AW: Herausfinden ob eine Datei existiert

  Alt 24. Sep 2022, 05:15
Delphi-Quellcode:
DragAcceptFiles(Self.Handle, True); // mit WM_DROPFILES (oder nur an Edit/Panel)
SHAutoComplete(FilenameEdit.Handle, SHACF_FILESYSTEM or SHACF_FILESYS_ONLY or SHACF_FILESYS_DIRS
  or SHACF_AUTOSUGGEST_FORCE_ON or SHACF_AUTOAPPEND_FORCE_ON);
und zusätzlich noch einen Button/Doppelklick mit dem TFileOpenDialog

MSDN-Library durchsuchenSHAutoComplete
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (24. Sep 2022 um 05:19 Uhr)
  Mit Zitat antworten Zitat
JimmyB

Registriert seit: 20. Mär 2022
26 Beiträge
 
#3

AW: Herausfinden ob eine Datei existiert

  Alt 24. Sep 2022, 15:28
Hallo allerseits,
mir ist noch aufgefallen, dass diese Textdatei, die mein Programm nicht finden konnte, unter "Pfad zum Delphi Programm\Win32\debug" stehen muss.
Die Pfadangabe von mir, die ich im Code platziert habe, interessiert das Delphi Programm nicht die Bohne.
Sehr seltsam!

Wie dem auch sei, die Werte werden jetzt eingelesen und in einem Richtext Objekt zur Anzeige gebracht.
Jetzt ist der Plan aber das jede einzelen Zeile für sich in einem
----Checkbox1
----Checkbox2
----Checkbox3

zur Anzeige gebracht wird.
Ich habe dazu Versuche mit einem Label Objekt und einem Checkbox Objekt gemacht
Ich dachte für CheckBox1 wird nur die erste Zeile angezeigt.
Ist aber nicht so, weil die Schleife die Textdatei durchgeht und die letzte Zeile aus der Textdatei, im Caption des Objekts zur Anzeige bringt.
Mit einer Schleife, welche die Checkbox1, Checkbox2, Checkbox3 usw durchgeht, wäre eine Variable

- Checkboxi.Caption (i soll hier die laufende Nummer als Variable genutzt werden

ggf. ein Weg. Ich scheitere gerade an der Schleife, oder den Variabletypen.



vg JimmyB
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen

Registriert seit: 30. Nov 2003
Ort: Luterbach (CH)
711 Beiträge
 
Delphi 12 Athens
 
#4

AW: Herausfinden ob eine Datei existiert

  Alt 24. Sep 2022, 15:59
mir ist noch aufgefallen, dass diese Textdatei, die mein Programm nicht finden konnte, unter "Pfad zum Delphi Programm\Win32\debug" stehen muss.
Die Pfadangabe von mir, die ich im Code platziert habe, interessiert das Delphi Programm nicht die Bohne.
Die .exe liegt im Normalfall im \Win32(64)\Release(Debug) Verzeichnis... und wenn Du sie dorthin kopiert hast, wirst Du sie ja auch dort finden.
Zitat:
Ich habe die Textdatei ins gleiche Verzeichnis kopiert, wie die Projektdatei liegt, bzw. die .exe Datei und siehe es funktioniert.
Vom Beschrieb her klingt es, als ob Du z.B. ExtractFilePath(ParamStr(0)) verwendest.

Wie sieht den der aktuelle Code aus?
Roland
  Mit Zitat antworten Zitat
THY4243

Registriert seit: 15. Dez 2012
Ort: München - Untermenzing
46 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Herausfinden ob eine Datei existiert

  Alt 24. Sep 2022, 16:50
Vom Beschrieb her klingt es, als ob Du z.B. ExtractFilePath(ParamStr(0)) verwendest.

Wie sieht den der aktuelle Code aus?
... Dann wäre es sicher einfacher, zu helfen. Auch, weil es ggf. ein Thema "Windows 32Bit-Application läuft auf 64-Bit-Windows" sein kann.
  Mit Zitat antworten Zitat
JimmyB

Registriert seit: 20. Mär 2022
26 Beiträge
 
#6

AW: Herausfinden ob eine Datei existiert

  Alt 24. Sep 2022, 17:48
Hallo,

der Code, der so nicht funktioniert:
var i : Integer;
i:=1;
for i := 1 to 10 do begin
checkbox+inttostr(i).Caption := sLine;

Mit diesem Konstrukt funktioniert es auf jeden Fall nicht.

Ich einen Reihe von Checkboxen angelegt und in den "Captions" möchte ich jeweils eine Zeile aus der Textdatei anzeigen.
Anders geschrieben, im Grunde ist es egal, in welchem Objekt ich die Zeilen jeweils anzeige. Wichtig ist, dass jede Zeile in einem eigenen Objekt (also nicht in einem Richtext Objekt gezeigt wird.
Der Plan ist das ich Checkbox1, Checkbox2 und so weiter, der Reihe nach hochzähle und dann jeweils in die Textzeile dort anzeige.

vg JimmyB

Geändert von JimmyB (24. Sep 2022 um 17:52 Uhr)
  Mit Zitat antworten Zitat
JimmyB

Registriert seit: 20. Mär 2022
26 Beiträge
 
#7

AW: Herausfinden ob eine Datei existiert

  Alt 24. Sep 2022, 17:50
Hallo,

der Code, der so nicht funktioniert:


while NOT eof (myfile) do
begin
//Step 6: Get each line of text file into string variable
readln (myfile, sLine);

// work with sLine

var i : Integer;
i:=1;
for i := 1 to 10 do begin
checkbox+inttostr(i).Caption := sLine;

Mit diesem Konstrukt funktioniert es auf jeden Fall nicht.

Ich einen Reihe von Checkboxen angelegt und in den "Captions" möchte ich jeweils eine Zeile aus der Textdatei anzeigen.
Anders geschrieben, im Grunde ist es egal, in welchem Objekt ich die Zeilen jeweils anzeige. Wichtig ist, dass jede Zeile in einem eigenen Objekt (also nicht in einem Richtext Objekt gezeigt wird.
Der Plan ist das ich Checkbox1, Checkbox2 und so weiter, der Reihe nach hochzähle und dann jeweils in die Textzeile dort anzeige.

vg JimmyB
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Herausfinden ob eine Datei existiert

  Alt 24. Sep 2022, 18:17
Ich habe mal spaßenshalber 2 checkboxen auf eine form geknallt und folgendes erfolgreich ausprobiert, damit solltest du voran kommen wenn du meiner logik folgen kannst:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
  Component: TComponent;
begin
  for I := 1 to 2 do
    begin
      Component := FindComponent('CheckBox' + IntToStr(I));
      if ((Component <> nil) and (Component is TCheckBox)) then
        TCheckBox(Component).Caption := 'Text ' + IntToStr(I);
    end;
end;
Viel Spass damit!
Gruß vom KodeZwerg

Geändert von KodeZwerg (24. Sep 2022 um 18:32 Uhr) Grund: ohne rtti geht es auch :-D
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:58 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