![]() |
Wie kann ich nach einem String den nächsten 'sehen'
Frage wie kan ich nach einem Strin den nächsten erblicken
zb.: /kick *name* beim Chat (der nächste String sollte gekickt werden(ausgeschlossen werden aus dem Chat) Bitte helft mir Danke im Voraus(ihr wisst eh immer Rat :D ) |
Re: Wie kann ich nach einem String den nächsten 'sehen'
Moin Nicodius,
schau Dir dazu mal die Funktionen pos und copy an. |
Re: Wie kann ich nach einem String den nächsten 'sehen'
HAb ich schon aber weiß eben nicht wie ich daraus den NÄCHSTEN String bekomme!
|
Re: Wie kann ich nach einem String den nächsten 'sehen'
Moin Nicodius,
Du weisst dass der erste String /kick ist, und Du weisst wie lang dieser String ist. Dann suchst Du halt nach /kick und kopierst ab dieser Position plus Länge plus 1 bis zum Ende des Strings. Dass müsste dann der Name sein (ggf. mit Trim Blanks löschen) |
Re: Wie kann ich nach einem String den nächsten 'sehen'
Du kannst ja mit POS nach dem ersten Leerzeichen suchen und dann ab da alles rauskopieren.
|
Re: Wie kann ich nach einem String den nächsten 'sehen'
Hi,
das geht wenn du mit copy+pos arbeitest:
Delphi-Quellcode:
var a,b,c:integer;
s, temp, suche:string; begin a := 0; s := 'das hier ist ein toller test. hier isser.'; temp := s; suche := 'hier'; for a := 1 to length(s) do begin c := pos(suche, temp); if c <> 0 then begin b := length(s) - length(temp); showmessage('An Position "' + inttostr(c + b) + '" ist ein "' + suche + '".'); temp := copy(temp, c + length(suche), length(temp)); end; end; |
Wie kann ich nach einem String den nächsten 'sehen'
Danke, hilft sehr viel. Versteh zwar nicht alles aber sollange es geht ists doch super :mrgreen:
|
Re: Wie kann ich nach einem String den nächsten 'sehen'
das istz aber eigentlich die falsche Einstellung....du sollst doch auch was draus lernen, sonst fragst du evtl beim nächsten mal die gleiche oder eine sehr ähnliche Frage, bei der du nicht mehr weiterweißt...
Was verstehst du denn nicht? |
Re: Wie kann ich nach einem String den nächsten 'sehen'
wenn ich das richtig verstanden habe..geht das auch ganz einfach
Code:
somit werden beim string str ab dem ersten zeichen sechs zeichen entfernt, also hast du nur noch der name.
str := '/kick name';
delete(str,1,6); peace |
Re: Wie kann ich nach einem String den nächsten 'sehen'
Nicht umbedingt. hinter dem Namen kann ja auch noch irgendwas anderes stehen. Aber dieses Delet kannte ich auch noch nicht. Tja, man lernt eben nie, nie aus...
Man liest sich, Stanlay :hi: |
Re: Wie kann ich nach einem String den nächsten 'sehen'
Um ehrlich zu sein, hobbylooser: Nun versteh ich noch weniger :mrgreen:
Denn /kick 'hierstehtdername' bringt mir nix wenn das gelöscht wir Ich brauch den namen doch ;) um in in einer anderen Richedit zu löschen ;) Tja deshalb würde ich gerne NUR den Namen festellen um in in der Richedit zu LÖSCHEN :lol: Na dann, schönen Abend Nicodius |
Re: Wie kann ich nach einem String den nächsten 'sehen'
Hallo,
dann schau Dir doch Copy und Pos an und nicht Delete. Grüsse, Daniel :hi: |
Re: Wie kann ich nach einem String den nächsten 'sehen'
Moin Daniel,
schau Dir mal mein erstes Posting an :mrgreen: |
Re: Wie kann ich nach einem String den nächsten 'sehen'
Moin Christian,
schau Dir mal die drei Beiträge vor meinem an, ich glaube das Dich niemand verstanden hat, daher habe ich es einfach nochmal versucht. ;) Grüsse, Daniel :hi: |
Re: Wie kann ich nach einem String den nächsten 'sehen'
Zitat:
Heißt im Endeffekt, dass du aus dem String '/kick name' nur '/kick ' löschst. der Name dahinter bleibt ja :wink: Man liest sich, Stanlay :hi: |
Re: Wie kann ich nach einem String den nächsten 'sehen'
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Nicodius,
vielleicht hilft Dir dieses Beispiel weiter. Hiermit kannst Du limited Strings in seine einzelnen Komponenten zerlegen und hast sie anschließend in einem TStrings Object stehen. bye |
Re: Wie kann ich nach einem String den nächsten 'sehen'
Zitat:
|
Re: Wie kann ich nach einem String den nächsten 'sehen'
Zitat:
Delphi-Quellcode:
var a,b,c:integer;
s, temp, suche:string; //Variablen begin s := 'das hier ist ein toller test. hier isser.'; //der hauptstring, der durchsucht werden soll temp := s; //damit s nicht verändert wird, wird s an temp übergeben suche := 'hier'; //danach wird gesucht for a := 1 to length(s) do begin //schleife c := pos(suche, temp); //hier wird immer nach dem nächsten suchen gesucht und anschliessend an c übergeben if c <> 0 then begin //nur wenn c auch ne position ist b := length(s) - length(temp); //hier wird die richtige position ausgerechnet, sonst würde die position nicht stimmen, an der es gefunden wurde showmessage('An Position "' + inttostr(c + b) + '" ist ein "' + suche + '".'); //gibt halt ne meldung aus wo was gefunden wurde temp := copy(temp, c + length(suche), length(temp)); //hier wird der string zurechtgeschnitten, sonst würde immer die gleiche position rauskommen, an der das erste gefunden wurde... end; end; |
Re: Wie kann ich nach einem String den nächsten 'sehen'
Die drei zeilen kommen mir chinesisch vor :mrgreen: liegt wohl daran das ich anfänger bin :roll:
Code:
vorallem die zweite zeile irgendwie denk ich falsch glaub ich
c := pos(suche, temp);
b := length(s) - length(temp); // vorallem die zeile ??! temp := copy(temp, c + length(suche), length(temp)); |
Re: Wie kann ich nach einem String den nächsten 'sehen'
und die ausgabe c+b mhh.. irgendwie leuchtet mir nicht ein :(
|
Re: Wie kann ich nach einem String den nächsten 'sehen'
Naja ich glaub ich versteh gar nicht richtig um was es dabei geht :|
|
Re: Wie kann ich nach einem String den nächsten 'sehen'
Hi,
1. Zeile: Hier wird C die Position von Suche im Temp-String zugewiesen. 2. Zeile: Hier wird die Wirkliche größe ermittelt, sonst wäre die Position immer kleiner als das wirkliche Ergebnis (Länge von S - Länge von Temp) 3. Zeile: Hier wird der String "abgehackt" sonst würde immer ne Endlosschleife kommen (falls der gesuchte Begriff drin ist). Das erklärt dann auch Zeile 2. |
Re: Wie kann ich nach einem String den nächsten 'sehen'
Frage könntet ihr es mir so erklären das es mit meinen Komponenten funktioniert ? bitte :lol:
Also in Edit1 wird /Kick Name reingeschrieben. Der "Name" wird dann aus dem Richedit1(bei mir als Memo2 betitelt ;) ) geworfen. Dann steht in Edit1 wieder nichts. Danke :D |
Re: Wie kann ich nach einem String den nächsten 'sehen'
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Nicodius,
wie wärs mit dem Beispiel. bye |
Re: Wie kann ich nach einem String den nächsten 'sehen'
Zitat:
|
Re: Wie kann ich nach einem String den nächsten 'sehen'
Danke Duffy!! Jetzt hab ichs Sehr nett von dir, jetzt shcaff ichs :mrgreen:
Danke nochmal an alle für die Hilfe :bounce2: |
Re: Wie kann ich nach einem String den nächsten 'sehen'
das mit dem abziehen is mir nicht klar und was in welcher variable da steht naja aber egal ich will nciht nerven ^^
|
Re: Wie kann ich nach einem String den nächsten 'sehen'
*heul*
Das geht nicht bei Delphi3 Pro! :( Danke trotzdem Duffy WAS SOLL ICH JETZT AMCHEN :( :lol: |
Re: Wie kann ich nach einem String den nächsten 'sehen'
Hallo Nicodius,
was geht nicht? bye |
Re: Wie kann ich nach einem String den nächsten 'sehen'
Ich habs mir nochmal angeguckt ich bin echt zu dumm abe rich wills wissen :( könntest du maybe mal mit nem bsp so durchmachen was immer in variablen drin steht son kleines bsp wenns dir nichts ausmacht natürlich :(
|
Re: Wie kann ich nach einem String den nächsten 'sehen'
Duffy: Dein Projekt geht nicht...
übrigens eins ist klar: das das nicht so zu löschen geht :/kick 1VorName 2NachName(unterleerzeichen) egal: Dein Projekt geht nicht bei Delphi3!! |
Re: Wie kann ich nach einem String den nächsten 'sehen'
Hallo Nicodius,
auch das löschen von /kick 1VorName 2NachName geht. Du mußt dann nur /kick "1VorName 2NachName" eingeben, also mit Gänzefüßchen. Daß das Projekt so nicht funktioniert ist klar, Du kannst es nicht öffnen, da es mit D7 geschrieben wurde. Es hindert Dich aber keiner daran Dir den Quellcode anzuschauen und aus der Unit zu kopieren. Dann einfach in D3 Projekt eingefügt und fertig. Dieser sollte dann auch in D3 funktionieren, da es da schon TStrings und TStringlist gab. Ich kann es leider in D3 nicht testen, da ich kein D3 auf einem Rechner installiert habe. bye |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:54 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