Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi enthaltene Zahlen am Anfang(!) in Lisbox entfernen (https://www.delphipraxis.net/126475-enthaltene-zahlen-am-anfang-lisbox-entfernen.html)

juergen 25. Dez 2008 20:38


enthaltene Zahlen am Anfang(!) in Lisbox entfernen
 
Hallo zusammen,

allen erst einmal schöne Weihnachten! :)

Ich suche eine Möglichkeit in einer Listbox (im virtuellen Modus) die Daten ohne führende Zahlen und Leerzeichen anzuzeigen.
Im Moment zeige ich in der Listbox nur den Dateinamen an, ohne Pfadangabe und Dateiendung:
Delphi-Quellcode:
procedure TMainForm1.ListBoxData(Control: TWinControl; Index:
  Integer; var Data: string);
begin
  Data := IntToStr(Files.IndexOf(Files[Index]) + 1) + '.....' +
    ChangeFileExt(ExtractFileName(Files[Index]), '');
  //mit Nummerierung der Listeintraege; Ausgabe des Dateinamen ohne Pfadangabe und ohne Dateiendung
end;
Beispiel:
004 Es weihnachtet so schön --> Es weihnachtet so schön

Ich habe da schon einiges versucht, u.a. mit StringReplace(), aber ich denke damit geht es nicht.

Hat da jemand einen Denkanstoß für mich?

Danke schon mal im Voraus!

//Edit: ich hatte die falsche Delphi-Plattform angegeben...-> geändert

mkinzler 25. Dez 2008 20:46

Re: enthaltene Zahlen am Anfang(!) in Lisbox entfernen
 
Ist das Format immer so?

juergen 25. Dez 2008 20:50

Re: enthaltene Zahlen am Anfang(!) in Lisbox entfernen
 
Zitat:

Zitat von mkinzler
Ist das Format immer so?

Nein, manchmal haben die Dateinamen keine Zahlen am Anfang, machmal aber ja...

Luckie 25. Dez 2008 20:58

Re: enthaltene Zahlen am Anfang(!) in Lisbox entfernen
 
Such das erste Leerzeichen. Und wenn die Zeichenkette bis dahin nur Ziffern enthält, abschneiden.

toms 25. Dez 2008 21:00

Re: enthaltene Zahlen am Anfang(!) in Lisbox entfernen
 
Hallo

TrimLeft() entfernt ja die Leerzeichen am Anfang des Strings.

Diese Funktion abgeändert, damit Zahlen und Leerzeichen entfernt werden:

Delphi-Quellcode:
function StripLeft(const S: string): string;
var
  I, L: Integer;
begin
  L := Length(S);
  I := 1;
  while (I <= L) and ((S[I] in ['0'..'9']) or (S[I] <= ' ')) do Inc(I);
  Result := Copy(S, I, Maxint);
end;

Hawkeye219 25. Dez 2008 21:04

Re: enthaltene Zahlen am Anfang(!) in Lisbox entfernen
 
Hallo Jürgen,

vielleicht hilft dir auch diese Routine.

Frohe Weihnachten wünscht

Hawkeye

juergen 25. Dez 2008 21:12

Re: enthaltene Zahlen am Anfang(!) in Lisbox entfernen
 
@Tom,
Perfekt!
Hätte ich so nicht hinbekommen... :oops:
Also vielen Dank! :thumb:

@Hawkeye,
deinen Ansatz mit Val schaue ich mir gleich noch genauer an.
Auch dir vielen Dank!


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