Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Strings_trenne? Wie?


PeeTheBee - Mi 03.11.04 14:18
Titel: Strings_trenne? Wie?
Hallo Leute!


Ich bin auf der Suche nach einer Funktion, die wie folgt aufgebaut sein soll:

function strings_trennen(quellstring, trennzeichen: string; teilnummer: Integer): string;

Möglichst sollte sie auch mit Mehrzeichen-Trennzeichen (z.B. "<>") funktionieren.
Ein Beispiel: strings_trennen('Andreas isst, was er will', ', ', 2) soll "was er will" ergeben. Ich hoffe ihr versteht das, und
vielen Dank für eure Bemühungen, Peter


jaenicke - Mi 03.11.04 14:41


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
function strings_trennen(quellstring, trennzeichen: string; teilnummer: Integer): string;
var aktuellTeil: Integer;
begin
    aktuellTeil:=1;
    while aktuellTeil < teilnummer do
        if Pos(trennzeichen,quellstring) > 0 then
            Delete(quellstring,1,Pos(trennzeichen,quellstring)+Length(quellstring)-1)
        else
            Break;
    if aktuellTeil = teilnummer then
        Result:=Copy(quellstring,1,Pos(trennzeichen,quellstring)-1)
    else
        Result:='';
end;

Hoffe das geht.


Udontknow - Mi 03.11.04 14:43

Hallo!

Die Unit JCLStrUtils Von den Jedi-Leuten beeinhaltet die Routine ExtractWord, die genau das macht.

Cu,
Udontknow


jaenicke - Mi 03.11.04 14:53

Ja, ich weiß und eine meiner Tool-Units hat auch so eine Funktion, aber ich wollte jetzt nicht irgendwohin verweisen. :wink:


Delete - Mi 03.11.04 14:54

Im Forum dürfte ein Routine namens Suche in: Delphi-Forum, Delphi-Library EXPLODE rumschwirren.


Udontknow - Mi 03.11.04 14:59

Explode kann aber imho nur nach einem Zeichen trennen, nicht nach Zeichenketten als Terminatorsymbol.

Cu,
Udontknow


Delete - Mi 03.11.04 15:02

http://www.delphi-forum.de/viewtopic.php?t=13017&highlight=explode
Separator ist zumindest als String deklariert. Ausprobiert habe ich es aber noch nicht.


Udontknow - Mi 03.11.04 15:08

Oh, stimmt. Hatte hier [http://www.delphi-forum.de/viewtopic.php?t=376&highlight=explode] gekuckt. :)


jaenicke - Mi 03.11.04 15:09

Udontknow hat folgendes geschrieben:
Explode kann aber imho nur nach einem Zeichen trennen, nicht nach Zeichenketten als Terminatorsymbol.

Wofür wäre dann darin SepLen, die die Länge des Separators bekommt (in Zeile 24)? :roll:

Edit:
Zitat:
Oh, stimmt. Hatte hier gekuckt.

k.K. :wink:

Moderiert von user profile iconUdontknow: Beiträge zusammengefasst. :wink:


Danzig.Bln - Mi 12.01.05 17:17

hallo ,

ich bin neu hier ...
kann mir jemand sagen , wie ich es schaffe , dass ich ein "suchwort " in edit 1.text in ein " strichwort (===) " ausgeben kann ?


JayEff - Mi 12.01.05 17:29

1. Neue Frage -> Neuer Thread..
2. :shock: was soll das bedeuten?? strichwort? nie gehört... oO mir is deine Frage leider etwas rätselhaft...


jasocul - Mi 12.01.05 17:31

Hallo Danzig.Bln :welcome:
JayEff hat recht.
Mach bitte eine neues Topic auf und stelle deine Frage bitte etwas verständlicher.