Ein neues Thema erstellen  Auf das Thema antworten  [ 12 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Stringfunktion
BeitragVerfasst: 16.04.2002, 02:04 

Registriert: 12.01.2002, 20:24
Beiträge: 227
Wohnort: Giessen, Hessen, Germany
Wie kann ich denn die ersten x Zeichen von einem String abschneiden um den Rest zu verwenden ?!?

also zum Beispiel:

Es sind keine Clantags erlaubt...
[TEST]Player -> Player

DANKE!

_________________
Denn nur wer was zu sagen hat,
Der hat's, wenn es nicht unabdingbar ist

http://clan-ggg.de.vu/


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 16.04.2002, 09:29 
AM.de Team
Benutzeravatar

Registriert: 22.10.2001, 01:00
Beiträge: 839
Gute Frage. Gibt es in string.inc keine Funktion dafuer?





Hmm, da es in Small keine Zeiger gibt, wird es wohl auf ein zeichenweises Kopieren hinauslaufen. Das kannst Du natuerlich auch in-place machen, wenn Du willst.





Ansonsten versuch doch mal, ob diese kleine Schweinerei funktioniert:

Code:
new From[] = [TEST]Player
new To[20];

strcpy( To, sizeof(To), From + 6);
Ich habe aber keine Ahnung, ob das wirklich geht.

_________________
There are no stupid questions, only stupid people.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 16.04.2002, 18:44 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
Wie sieht es damit aus ?
Code:
/*
 *  Returns the first token from source (where token is defined as
 *  a string held within delimiters), up to the maximum length).
 *  sToken is filled with token, and the return value is the length
 *  of sToken.  -1 if no token found.
 *  This function can be called repeatedly to get further tokens;
 *  in this case, leave source blank.
 */
native strtok(sSource[], sDelimiters[], sToken[], iMaxLen);

/*
 *  Returns in sRest what is left over of a string on which strtok has been called.
 *  Return value is the length of sRest, -1 if no rest is left or if strtok hasn't 
 *  been called yet.
 */
native strtokrest(sRest[], iMaxLen);

/*
 *  Like strtok, but allows for grouping 'meta-token' that ignores other tokens.
 *  (eg, strgtok("'This is' a test", " ", "'", sToken, 20)
 *  will return sToken1 as "This is")
 *  strgtok uses a *different* internal buffer than strtok. You cannot 
 *  mix strtok and strgtok calls on the same buffer (empty sSource).
 */
native strgtok(sSource[], sDelimiters[], sGrouping[], sToken[], iMaxLen);

/*
 *  Returns in sRestwhat is left over of a string on which strgtok has been called.
 *  Return value is the length of sRest, -1 if no rest is left or if strgtok hasn't 
 *  been called yet.
 */
native strgtokrest(sRest[], iMaxLen);
Schau mal in die Sting.inc da gibt es auch noch andere Sachen, mit denen Du sowas lösen kannst.

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 17.04.2002, 14:20 

Registriert: 12.01.2002, 20:24
Beiträge: 227
Wohnort: Giessen, Hessen, Germany
Happy Dankeschön! :wink: :P

_________________
Denn nur wer was zu sagen hat,
Der hat's, wenn es nicht unabdingbar ist

http://clan-ggg.de.vu/


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 23.04.2002, 04:39 

Registriert: 25.03.2002, 23:02
Beiträge: 131
Wohnort: Berlin
also genau das such ich auch , hab probiert ohne ende aber ich bekomm das nicht hin. Kannst du dein script mal bitte posten ?


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 23.04.2002, 14:01 

Registriert: 12.01.2002, 20:24
Beiträge: 227
Wohnort: Giessen, Hessen, Germany
Da ich dem Namen selbst etwas hinzufüge, was ich später wieder entfernen will (erst mit der oben genannten Methode), habe ich das schliesslich so gemacht wie es am einfachsten ist... mit einem Leerzeichen! -> strbreak()

Aber mit einer for-Schleife müsste das auch gehen...
Vielleicht von hinten nach vorn... ?

_________________
Denn nur wer was zu sagen hat,
Der hat's, wenn es nicht unabdingbar ist

http://clan-ggg.de.vu/


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 23.04.2002, 19:59 
AM.de Team
Benutzeravatar

Registriert: 22.10.2001, 01:00
Beiträge: 839
Genaus was suchst Du auch, Spoocy?

_________________
There are no stupid questions, only stupid people.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 23.04.2002, 20:10 

Registriert: 25.03.2002, 23:02
Beiträge: 131
Wohnort: Berlin
das

[TEST]Player -> Player

also bei connecten sollen bestmmte clan-tags endfernt werden.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 23.04.2002, 20:18 
AM.de Team
Benutzeravatar

Registriert: 22.10.2001, 01:00
Beiträge: 839
Jo, aber was fuer Clan Tags?

_________________
There are no stupid questions, only stupid people.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 23.04.2002, 20:27 

Registriert: 25.03.2002, 23:02
Beiträge: 131
Wohnort: Berlin
[WHZ]Nick


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 23.04.2002, 22:17 
AM.de Team
Benutzeravatar

Registriert: 22.10.2001, 01:00
Beiträge: 839
Hmm, wohl doch am ehesten noch eine for()-Schleife.
Code:
new i;
new target[50];
new source[] = "[WHZ]Nick";

for ( i = 5; i < sizeof(target); i++ ) {
    target[i-5] = source[i];
    if ( source[i] == '^0' ) break;
}  // for

target[i] = '^0';

_________________
There are no stupid questions, only stupid people.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 24.04.2002, 07:46 
AM.de Team
Benutzeravatar

Registriert: 22.10.2001, 01:00
Beiträge: 839
Hoppala! Und im Eifer des Gefechts direkt einen schoenen off-by-one Fehler produziert. Die letzte Zeile sollte besser lauten:




Code:
target[sizeof(target)-1] = '^0';

_________________
There are no stupid questions, only stupid people.


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 12 Beiträge ] 


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de
Original Design von "[ Half-Life Admin Mod © Alfred Reynolds 2000-2003 ] - [ site design by Jägermeister ]"