Memo1->Lines->Delimiter = ':';
Memo1->Lines->DelimitedText = "Мама:мыла:раму";
Разбиение строк
Благодарю за помощь.:)
Код:
...а если я например не с Мемо строку беру а с какого-то другого буффера?Например считываю файл в переменную, и хочу разбить ее на массив по определенному разделителю, например '\t'?
смотри strtok() и прочее из string.h
Ну и напряг...в шарпе просто пишешь после строки которую нуна разбить .Split(Separators) и все... :(((
Пля стоко умных людей на форуме бывает и что, никто никогда не встречался с таким?Мож кто-то сам писал когда-то такую ф-цию?Блин я уже 4 дня парусь, простенькая прога, вся загвоздка в том чтоб разбить строку на массив строк...строка разделена ТАБами...
ПОМОГИТЕ ПЛИЗ КТО-НИТЬ!!!
Пля стоко умных людей на форуме бывает и что, никто никогда не встречался с таким?Мож кто-то сам писал когда-то такую ф-цию?Блин я уже 4 дня парусь, простенькая прога, вся загвоздка в том чтоб разбить строку на массив строк...строка разделена ТАБами...
ПОМОГИТЕ ПЛИЗ КТО-НИТЬ!!![/QUOTE]
А подумать немного и F1 в Билдере нажать?
Код:
TStringList *slTabs = new TStringList;
slTabs->Delimiter = '\t';
slTabs->Clear();
slTabs->DelimitedText="Мама\tбила\tМашу";
AnsiString x1 = slTabs->Strings[0]; // Мама
AnsiString x2 = slTabs->Strings[1]; // била
AnsiString x3 = slTabs->Strings[2]; // Машу
delete slTabs;
slTabs->Delimiter = '\t';
slTabs->Clear();
slTabs->DelimitedText="Мама\tбила\tМашу";
AnsiString x1 = slTabs->Strings[0]; // Мама
AnsiString x2 = slTabs->Strings[1]; // била
AnsiString x3 = slTabs->Strings[2]; // Машу
delete slTabs;
Пля стоко умных людей на форуме бывает и что, никто никогда не встречался с таким?Мож кто-то сам писал когда-то такую ф-цию?Блин я уже 4 дня парусь, простенькая прога, вся загвоздка в том чтоб разбить строку на массив строк...строка разделена ТАБами...
ПОМОГИТЕ ПЛИЗ КТО-НИТЬ!!![/QUOTE]
Хех... Лови то же самое, но без AnsiString и VCL. Возможные ошибки найдёшь и исправишь сам, хотя, вроде, код работает (протестировано в Borland C++ 1.3 for DOS)
Код:
#include <stdio.h>
#include <string.h>
int MySplit(char *src, char **dst, char splitchar);
int main(void)
{
char *x;
char *strings[60];
int i;
int n;
strcpy(x, "Run\tLive\tTo\tFly\t,\tFly\tTo\tLive\tAces\tHigh\t!");
for(i = 0; i < 60; i++)
strings = new char[100];
n = MySplit(x, (char**)strings, '\t');
for(i = 0; i < n; i++)
puts(strings);
for(i = 0; i < 60; i++)
delete[] strings;
return 0;
}
int MySplit(char *src, char **dst, char splitchar)
{
int i;
int l;
int j;
int k;
for(k = 0, i = 0, j = 0, l = strlen(src); i < l; i++)
{
if(src == splitchar)
{
dst[j++][k] = '\0';
k = 0;
}
else
dst[j][k++] = src;
}
if(k)
dst[j][k] = '\0';
return ++j;
}
#include <string.h>
int MySplit(char *src, char **dst, char splitchar);
int main(void)
{
char *x;
char *strings[60];
int i;
int n;
strcpy(x, "Run\tLive\tTo\tFly\t,\tFly\tTo\tLive\tAces\tHigh\t!");
for(i = 0; i < 60; i++)
strings = new char[100];
n = MySplit(x, (char**)strings, '\t');
for(i = 0; i < n; i++)
puts(strings);
for(i = 0; i < 60; i++)
delete[] strings;
return 0;
}
int MySplit(char *src, char **dst, char splitchar)
{
int i;
int l;
int j;
int k;
for(k = 0, i = 0, j = 0, l = strlen(src); i < l; i++)
{
if(src == splitchar)
{
dst[j++][k] = '\0';
k = 0;
}
else
dst[j][k++] = src;
}
if(k)
dst[j][k] = '\0';
return ++j;
}