Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Strings subtrahieren? (https://www.delphipraxis.net/47249-strings-subtrahieren.html)

Pitch-Bull 8. Jun 2005 11:48


Strings subtrahieren?
 
Ich lasse mir über opendialog den gesamten dateipfad ausgeben(in einer listbox), jedoch möchte ich bloß den Dateinamen haben ohne den kompletten Pfad. ist dies irgendwie möglich?

Ich hatte es bisher nur damit versucht alles vor dem letzte "\" zu löschen (beim Pfadnamen). das hat aber nicht funktioniert.
also habe ich es wieder verworfen.

MfG Pitch-Bull

barf00s 8. Jun 2005 11:49

Re: Strings subtrahieren?
 
Delphi-Quellcode:
sFileName := ExtractFileName(OpenDialog1.FileName);

Pitch-Bull 8. Jun 2005 11:58

Re: Strings subtrahieren?
 
nichts desto trotz zeigt er mir immernoch den kompletten pfad in der listbox an!!!

also so geht das nicht!

oder muss man noch was anderes schreiben?

trotzdem Danke!

Die Muhkuh 8. Jun 2005 12:00

Re: Strings subtrahieren?
 
Hi,

zeig mal deinen code.

Es geht schon so, wie es gezeigt wurde.

Sharky 8. Jun 2005 12:01

Re: Strings subtrahieren?
 
Hai Pitch-Bull,

wir können grundsätzlich besser helfen wenn Du uns auch den Codeausschnitt zeigst den Du verwendest ;-)

barf00s 8. Jun 2005 12:01

Re: Strings subtrahieren?
 
was heist denn kompletter pfad bei dir?

"C:\Foo\Bar\blah.txt"

oder

"blah.txt" ?

Delphi-Quellcode:
var
  sFileName: string = 'C:\Foo\Bar\Blah.txt';

begin
  sFileName := SysUtils.ExtractFileName(sFileName);
  Dialogs.ShowMessage(sFileName); // ergibt "Blah.txt"
end;

Pitch-Bull 8. Jun 2005 12:02

Re: Strings subtrahieren?
 
Code:
procedure TForm1.Playlistffnen1Click(Sender: TObject);
var
Playlistopen:TFileName;
begin
  if (OpenDialog1.Execute) then
    begin
      Playlistopen := ExtractFileName(OpenDialog1.FileName);
     // Playlistopen:=OpenDialog1.FileName;

      ListBox1.items.LoadFromFile(Playlistopen);
    end;
end;

Die Muhkuh 8. Jun 2005 12:04

Re: Strings subtrahieren?
 
Zitat:

Zitat von Pitch-Bull
Code:
procedure TForm1.Playlistffnen1Click(Sender: TObject);
var
Playlistopen:TFileName;
begin
  if (OpenDialog1.Execute) then
    begin
      Playlistopen := ExtractFileName(OpenDialog1.FileName);
     // Playlistopen:=OpenDialog1.FileName;

      ListBox1.items.LoadFromFile(Playlistopen);
    end;
end;

Hi,

bitte nimm die [ delphi] [ /delphi] Tags (ohne das leerzeichen).

Ausserdem, kannst du deinen Code so schreiben:

Delphi-Quellcode:
procedure TForm1.Playlistffnen1Click(Sender: TObject);
begin
  if (OpenDialog1.Execute) then
    begin
      ListBox1.items.Add(ExtractFileName(OpenDialog1.FileName); // Nimm Add. wenn du das hinzufügen willst und nicht laden willst.
    end;
end;

barf00s 8. Jun 2005 12:04

Re: Strings subtrahieren?
 
ist klar das dann in der listbox der INHALT von der DATEI mit dem DATEINAMEN der in der variable "playlistopen" steht geladen wird ... und DA werden dann komplette pfade drin stehn ^^ -.-°

Sharky 8. Jun 2005 12:06

Re: Strings subtrahieren?
 
Hai Pitch-Bull,

Wenn in deiner Datei die Dateinamen mit dem gesamten Pfad stehen werden Sie natürlich auch wieder in der ListBox angezeigt.

Code:
procedure TForm1.Playlistffnen1Click(Sender: TObject);
var
Playlistopen:TFileName;
begin
  if (OpenDialog1.Execute) then
    begin
      Playlistopen := ExtractFileName(OpenDialog1.FileName); // Das ist ganz ganz schlecht. Hier sollte der
                                                             // gesamte Pfad aus dem Dialog verwendet werden.
      ListBox1.items.LoadFromFile(Playlistopen);
    end;
end;

Pitch-Bull 8. Jun 2005 12:09

Re: Strings subtrahieren?
 
naja, ehh. Ich check das nicht. ich freu mich ja, dass darauf so stark geantwortet wird, aber irgendwie ist noch keiner auf den punkt gekommen, wie ich nun genau NUR den Dateinamen ohne den langen Pfad in die Listbox schreibe.

Oder habe ich da was übersehen??????????ß Sollte ich vielleicht lieber ne andere Komponente als die Listbox verwenden?


SORRY HAT SICH SCHON ALLES ERLEDIGT- DANKE NOCHMAL!!!

Sharky 8. Jun 2005 12:17

Re: Strings subtrahieren?
 
Hai Pitch-Bull,

schaue Dir mal diesen Code an. Du brauchst drei Buttons:
  • B_AddFilieToListBox
  • B_SaveListBoxToFile
  • B_LoadListBoxFormFile

Ausserdem einen OpenDialog, einen SaveDialog und eine ListBox.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  ListBox1.Clear; // Inhalt der LB löschen
end;

procedure TForm1.B_AddFileToListBoxClick(Sender: TObject);
var
 mp3File : String;
begin
  OpenDialog1.Filter := 'MP3|*.mp3'; // Nur MP3s anzeigen
  if (OpenDialog1.Execute) then
  begin
    mp3File := ExtractFileName(OpenDialog1.FileName);
    Listbox1.Items.Add(mp3File)
  end;
end;

procedure TForm1.B_SaveListBoxToFileClick(Sender: TObject);
begin
  if (SaveDialog1.Execute) then
  begin
    ListBox1.Items.SaveToFile(SaveDialog1.FileName);
  end;
end;

procedure TForm1.B_LoadListBoxFromFileClick(Sender: TObject);
begin
  OpenDialog1.Filter := '';
  if (OpenDialog1.Execute) then
  begin
    ListBox1.Clear;
    ListBox1.Items.LoadFromFile(OpenDialog1.FileName);
  end;
end;

Steve 8. Jun 2005 12:25

Re: Strings subtrahieren?
 
Hi,

lad den Inhalt der Datei erstma in ne Stringliste. In dieser stehen dann also mehrere Dateinamen inkl. Pfadangaben. Dann fügst Du einfach immer nur den Dateinamen selbst der einzelnen Einträge an die Listbox an:
Delphi-Quellcode:
var
  SL : TStringList;
  i : integer;
begin
  SL := TStringList.Create; // Stringliste erzeugen
  // Hier kommt das OpenDialog-Zeugs
  SL.LoadFromFile(OpenDlg.FileName);
  FOR i:=0 TO Pred(SL.Count) DO // Alle Einträge der Stringliste durchlaufen
    ListBox.Items.Add( ExtractFileName(SL[i]) );
  // Hier noch sonstiger Code
  FreeAndNil(SL); // Freigeben
end;
Ist eigentlich das Gleiche wie von Sharky, nur eben in einer Routine zusammengefasst und die Pfadangaben werden in der Listbox nie angezeigt werden.

Gruß
Stephan :dance:

Pitch-Bull 8. Jun 2005 12:37

Re: Strings subtrahieren?
 
Na wunderbar. Ihr seit echt spitze. Klappt alles, wie am schnürchen. Muss mich jetzt eigentlich nur noch mit der bass.dll auseinandersetzen und dann funktioniert der mist.

hat vielleicht einer von euch ne ahnung, was ich mit der bass.dll alles so machen kann? und wie ich die parameter ansteuern kann?

Luckie 8. Jun 2005 12:40

Re: Strings subtrahieren?
 
Zitat:

Zitat von Pitch-Bull
hat vielleicht einer von euch ne ahnung, was ich mit der bass.dll alles so machen kann? und wie ich die parameter ansteuern kann?

Neue Frage, neuer Thread. Bitte. Ich schließe hier mal vorsorglich, scheint ja alles zu funktionieren.


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