Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Frage zu LoadFromFile (https://www.delphipraxis.net/203957-frage-zu-loadfromfile.html)

Oldjoe37 9. Apr 2020 20:34

Delphi-Version: 5

Frage zu LoadFromFile
 
Frohe Ostertage - trotz alledem!

Selbstgestellte Übungsaufgabe eines Anfängers:
Ich habe zwei Textdateien mit je 140 Einträgen (HTML-Code,Farbnamen),
die ich erst in zwei Listboxen und dann in ein StringGrid übertragen will.
(Delphi 5 ohne Hilfedateien.)
Ich scheitere vermutlich daran, dass ich nicht weiß, in welcher Form in der Zeile
Listbox1.Items.LoadFromFile(OpenDialog1.Filename);
der Filename "HTML.txt" eingegeben werden muss.

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
     f: TextFile;
     s: String;
     Filename: String;
begin
     Opendialog1.Filter:= 'Txt-Files (*.txt)|*.txt';
     if not OpenDialog1.Execute then EXIT;
     Listbox1.Clear;
     Filename:= 'HTML.txt';
     Listbox1.Items.LoadFromFile(OpenDialog1.Filename)
end;
Procedure wird fehlerfrei compiliert, aber Listbox bleibt leer.
"HTML.txt" liegt im selben Verzeichnis wie die Unit, Suchpfad ist eingestellt.

Bitte um Korrekturhinweise.

Luckie 9. Apr 2020 20:56

AW: Frage zu LoadFromFile
 
Gib den ganzen Pfad an.

Redeemer 9. Apr 2020 21:15

AW: Frage zu LoadFromFile
 
Du möchtest eine Datei mit hartgecodetem Pfad laden, lädst aber aus einer Eigenschaft von TOpenDialog, die zufällig gleich heißt und zufällig den richtigen Typ hat. Ich würde mal den TOpenDialog löschen und schauen, was mir angekreidet wird.

PS: Es gibt seit 2014 übrigens 148 CSS-Farbnamen, 141 ohne die beiden Schreibweisen von Grau als Hilfe für die Mitarbeiter von Hewlett Packard.

blawen 9. Apr 2020 21:27

AW: Frage zu LoadFromFile
 
Zitat:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
     f: TextFile;
     s: String;
     Filename: String;
begin
     Opendialog1.Filter:= 'Txt-Files (*.txt)|*.txt';
     if not OpenDialog1.Execute then EXIT;
     Listbox1.Clear;
     Filename:= 'HTML.txt';
     Listbox1.Items.LoadFromFile(OpenDialog1.Filename)
end;

Du gibst diverses an, welches Du in Deinem Codeschnipsel nicht verwendest und auch das Exit brauchst Du nicht wirklich.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Opendialog1.Filter:= 'Txt-Files (*.txt)|*.txt';
  if OpenDialog1.Execute
  then begin
    Listbox1.Clear;
    Listbox1.Items.LoadFromFile(OpenDialog1.Filename);
  end;
end;

Oldjoe37 10. Apr 2020 09:32

AW: Frage zu LoadFromFile
 
Danke für die schnelle Reaktion!
Alles Überflüssige entfernt.
Filename mit und ohne vollständigen Pfad unter Eigenschaften von OpenDialog eingetragen.
('HTML.txt' bzw. 'E:\DelphiProjekte\StringGrid\HTML.txt')
Button2 Eigenschaft OnClick geprüft.
TOpenDialog gelöscht. Exception: "Klasse TOpenDialog nicht gefunden." Weiter nichts.
Vereinfachte Procedure wird fehlerfrei compiliert, aber Listbox1 nicht gefüllt.

procedure TForm1.Button2Click(Sender: TObject);
begin
Opendialog1.Filter:= 'Txt-Files (*.txt)|*.txt';
if OpenDialog1.Execute Then
begin
Listbox1.clear;
Listbox1.Items.LoadFromFile(OpenDialog1.FileName);
end;
end;

Ich suche weiter!
Jürgen

Klaus01 10. Apr 2020 09:51

AW: Frage zu LoadFromFile
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
 openDialog: TOpenDialog;
begin
  openDialog := TOpenDialog.create(nil);
  try
    opendialog.Filter:= 'Txt-Files (*.txt)|*.txt';
    if openDialog.Execute then
      begin
        Listbox1.Clear;
        Listbox1.Items.LoadFromFile(openDialog.Filename);
     end;
  finally
    openDialog.free;
  end;
end;
Grüße
Klaus

DieDolly 10. Apr 2020 09:52

AW: Frage zu LoadFromFile
 
Zitat:

TOpenDialog gelöscht.
Löschen ist nicht gleich Löschen.
Hast du die visuelle Komponente auf dem Formular gelöscht oder einfach alle Vorkommen im Code?

p80286 10. Apr 2020 11:08

AW: Frage zu LoadFromFile
 
Zitat:

procedure TForm1.Button2Click(Sender: TObject);
begin
Opendialog1.Filter:= 'Txt-Files (*.txt)|*.txt';
if OpenDialog1.Execute Then
begin
Listbox1.clear;
Listbox1.Items.LoadFromFile(OpenDialog1.FileName);
end;
end;
Was hast Du gelöscht?

Fang erst einmalmit der Minimallösung, die schon beschrieben wurde an.
Code:
procedure TForm1.Button2Click(Sender: TObject);
begin
Listbox1.clear; // das ist überflüssig!
Listbox1.Items.LoadFromFile('vollständigerDateiname');
end;
Gruß
K-H

Amateurprofi 10. Apr 2020 11:33

AW: Frage zu LoadFromFile
 
Zitat:

Zitat von Luckie (Beitrag 1461734)
Gib den ganzen Pfad an.

Wenn OpenDialog.Execute True zurückgibt, steht in OpenDialog.FileName der komplette Dateipfad.

Amateurprofi 10. Apr 2020 11:37

AW: Frage zu LoadFromFile
 
Zitat:

Zitat von Oldjoe37 (Beitrag 1461750)
Danke für die schnelle Reaktion!
Alles Überflüssige entfernt.
Filename mit und ohne vollständigen Pfad unter Eigenschaften von OpenDialog eingetragen.
('HTML.txt' bzw. 'E:\DelphiProjekte\StringGrid\HTML.txt')
Button2 Eigenschaft OnClick geprüft.
TOpenDialog gelöscht. Exception: "Klasse TOpenDialog nicht gefunden." Weiter nichts.
Vereinfachte Procedure wird fehlerfrei compiliert, aber Listbox1 nicht gefüllt.

procedure TForm1.Button2Click(Sender: TObject);
begin
Opendialog1.Filter:= 'Txt-Files (*.txt)|*.txt';
if OpenDialog1.Execute Then
begin
Listbox1.clear;
Listbox1.Items.LoadFromFile(OpenDialog1.FileName);
end;
end;

Ich suche weiter!
Jürgen

Prüfe mal, ob bei Listbox1.Style eventuell einer der OwnerDraw-Stile angegeben ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:10 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