Ładny brzuch

Witam .. zna ktos moze dobry sposob na dzielenie Stringow na tokeny np oddzielone znakiem ";" ? :) Bylbym wdzieczny za jakiekolwiek informacje :D



cytat:Fazer napisa:

Witam .. zna ktos moze dobry sposob na dzielenie Stringow na tokeny np oddzielone znakiem ";" ? :) Bylbym wdzieczny za jakiekolwiek informacje :D

nie bardzo sie na tym znam ale jezeli tokeny to inne stringi to moznaby tworzyc je dynamicznie i przepisywac znaki do z pierwotnego stringa do nich ( nie pisalem nigdy w builderze ale w visualu byloby to tak ):
// wymaga wlaczania strstream.h

char **Array;
Array = new char*[N]; // alokujemy dynamicznie tablice stringoow
// rozmiar N ??? --> przeliczyc trzeba by // liczbe znakoow ';' w stringu najpierw

ostrstream Stream; // tworzy strumien wewnetrzny (konstruktor // bez argumentoow, czyli mozesz wpisac // dowolna ilosc znakow - buffor bedzie sie // sam powiekszal

for( int i = 0, n = 0; String[i]; ) // petla do czasu az natrafi // na NULL
{
for( ; String[i] != ';'; ++i ) // szukamy ';'
Stream << String[i]; // wpisujemy znak do buffora // strumienia

Stream << ends; // zamyka strumien
Array[n] = Stream.str(); // zwraca wskaznik na buffor
}

nie wiem czy to bedzie dzialac ( nie mam teraz zadnego kompilatora akurat:( mam watpliwosci co do ponownego uzycia poozniej strumienia Stream po zamknieciu go, niemniej jednak moze cos ci sie uda z tego madrego wyciagnac;) polecam helpa, powodzenia

o O l_ahriman O o

aha jooz sobie przypomnialem to bylo chyba
String.clear() jak sie nie myle
pod koniec zewnetrznej petli .....hmmm

o O l_ahriman O o

TStringList* tokens(String zm, char token) {   if(zm[zm.Length()]!=token)     zm+=token;   TStringList *list = new TStringList;   for(int pos=1,i=1;i<=zm.Length();i++)     if(zm[i]==token)       {         list->Add(zm.SubString(pos,i-pos));         pos=i+1;       }   return list; } void __fastcall TForm1::Button1Click(TObject *Sender) { Memo1->Lines = tokens("elou;aloha;hello;elo;;x;wrrr",';'); }

pozdrawiam
pepsi^no1



Wielkie Dzieki :D

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •