Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi String kürzen (https://www.delphipraxis.net/176745-string-kuerzen.html)

Davidlocke13 24. Sep 2013 10:52


String kürzen
 
Morgen;

ich habe einen String, der wie folgt aufgebaut ist: Wort1 - Wort2.jpeg

Das .jpeg bekomme ich schon mal entfernt!

Dann schaut der string so aus: Wort1 - Wort2

Wort1 und Wort2 können unterschiedlich lang sein!

Jetzt möchte ich eine String für Wort1 und eine 2. String für Wort2!
Wie stelle ich das an?


Liebe Grüße

DeddyH 24. Sep 2013 11:04

AW: String kürtzen
 
Delphi-Referenz durchsuchenPos() und Delphi-Referenz durchsuchenCopy() sollten Dir weiterhelfen.

fkerber 24. Sep 2013 11:08

AW: String kürtzen
 
Hallo,

evtl. hilft auch eine Suche in der Codelib weiter:
http://www.delphipraxis.net/dp_searc...2C45%2C47%2C50


Viele Grüße,
Frederic

taveuni 24. Sep 2013 12:03

AW: String kürzen
 
Oder wenn der Trenner immer gleich ist und insbesondere wenn es sich um
mehrere Zeilen handelt --> TStringlist.NameValueSeparator und .ValueFromIndex, .Names.

Mokus 24. Sep 2013 15:34

AW: String kürzen
 
Sonst den String in einer string list Verpacken,
per .commatext verlegen und dann per index drauf zugreifen`?

Spart Variablen ;-)

Davidlocke13 25. Sep 2013 12:57

AW: String kürzen
 
Pos() und Copy() bzw. delete() haben mir geholfen ;-)

hat zwar was gedauert damit zurecht zu kommen aber jetzt habe ich es raus!

Danke für die Hilfe!

Aphton 25. Sep 2013 13:14

AW: String kürzen
 
<OT>
#4 & #5 Lösungen sind nicht befriedigend!
Auch wenn man das Rad nicht neu Erfinden und Sachen, die existieren, wiederverwenden sollte, ist es hier - so glaube ich - besser, wenn man mit so elementaren Funktionen wie die Stringfunktionen umgehen kann, anstatt ne Komponente zu instanzieren und auf deren Funktionalität sich verlassen zu müssen =/
Sry
</OT>

sx2008 25. Sep 2013 13:20

AW: String kürzen
 
Zitat:

Zitat von Davidlocke13 (Beitrag 1229874)
Pos() und Copy() bzw. delete() haben mir geholfen ;-)

Du kannst auch auf fertige Funktionen zurückgreifen wie z.B.
http://www.delphipraxis.net/26055-st...fsplitten.html

Bei zwei Wörtern mit einem Trennzeichen lohnt sich das vielleicht nicht so ganz aber wenn du ein ähnliches Problem hast brauchst du nicht wieder bei Adam & Eva anfangen sondern kannst darauf zurückgreifen.

Sehr nützlich ist auch diese einfache Funktion:
Delphi-Quellcode:
function StrToken(var S: string; Separator: Char): string; // kopiert aus der JCL
var
  I: Integer;
begin
  I := Pos(Separator, S);
  if I <> 0 then
  begin
    Result := Copy(S, 1, I - 1);
    Delete(S, 1, I);
  end
  else
  begin
    Result := S;
    S := '';
  end;
end;


// Beispiel
var
  s, t : string;
begin
  s := ' Wort1 - Wort2 - Wort3';
  t := StrToken(s, '-'); // splitten
  t := Trim(t); // Leerzeichen weg
  ShowMessage(t); // "Wort1"
  t := Trim(StrToken(s, '-')); // splitten & Leerzeichen weg
  ShowMessage(t); // "Wort2"
  t := Trim(StrToken(s, '-')); // splitten & Leerzeichen weg
  ShowMessage(t); // "Wort3"


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