Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.11.21;
Скачать: [xml.tar.bz2];

Вниз

Разделение строки на слова.   Найти похожие ветки 

 
PaRL.   (2002-11-10 20:53) [0]

Этот вопрос тут уже был по-моему много раз.
Скажите ещё раз пожалуйста.
то есть "Привет всем" - в StringList слова занести "привет" и "всем"


 
OxOTHuK   (2002-11-10 21:05) [1]

var s,s1,s2: string; i: integer;
begin
s:="Привет всем";
i:=pos(s," "); //ищем пробел и запоминаем его позицию
s1:=copy(s,1,i-1); //Копируем часть строки до первого пробела
s2:=copy(s,i,lenght(s)-i); //копируем все от пробела и до конца
end;
такое прокатит если у тебя в строке 2 слова и разделены пробелом, а если больше то только ЦИКЛ (и я подозреваю что не один)... на вопрос я ответил...


 
Anatoly Podgoretsky   (2002-11-10 21:17) [2]

StringList.CommaText := "Привет всем"


 
apay   (2002-11-11 00:30) [3]

вся фишка в тои, что разделителем слов может быть не только пробел. в сях есть ф-я strtok(...) для выдергивания слов, в дельфях я такой не встречал. надо писать самому.

2 Anatoly Podgoretsky
вообще-то надо
StringList.Delimiter := " ";
StringList.DelimitedText := "Привет всем";



 
Дмитрий К.К.   (2002-11-11 08:28) [4]

Где-то на сайте http://delphibase.endimus.com/ была такая функция.


 
Song   (2002-11-11 08:59) [5]

Замени пробелы на #13#10, в результате слова рассортируются по строкам.


 
Separator   (2002-11-11 09:37) [6]

Во че я тут сделал:


type
TDelimiter = set of #32..#255;

procedure ConvertStr(const DelimitedText: string; const Delimeters: TDelimiter; List: TStrings);
var
i, Len, Prev: word;
begin
Len:= 1;
Prev:= 0;
for i:= 1 to Length(DelimitedText) do
if Prev <> 0 then
begin
if DelimitedText[i] in Delimeters then
begin
if Len = 0 then
Prev:= i + 1
else
begin
List.Add(copy(DelimitedText, Prev, Len));
Len:= 0;
Prev:= i + 1
end
end
else
Inc(Len)
end
else if not (DelimitedText[i] in Delimeters) then
Prev:= i;
if Len > 0 then
List.Add(copy(DelimitedText, Prev, Len));
end;


Пример использования:

ConvertStr(" Привет Народ! Как жизнь? У меня все ок.", [" ", "!", "?", "."], ListBox1.Items);


 
KoluChi   (2002-11-11 10:15) [7]

Ну разделение - это наверное стихия Separatorа :)


 
Separator   (2002-11-11 10:22) [8]

:)


 
Separator   (2002-11-11 10:24) [9]

после этого форума еще и поиск файлов по маске


 
Song   (2002-11-11 13:18) [10]

2Separator © (11.11.02 09:37)
Из СПб в Москву через Хабаровск...


 
Alex44   (2002-11-11 13:47) [11]

ExtractStrings


 
snake1977   (2002-11-11 14:16) [12]

вот пришлось когдато написать , есть аналог STRTOK но в СИ++
разбивает строку на лексемы
n- номер лексемы
s- строка исходник
l- разделитель лексем
результат - лексема

например st:=GetLex(3,"Всем программистам привет"," ");
результат = "привет";
или
например st:=GetLex(3,"Всем@@!программистам@@!привет","@@!");
результат = "привет";

Function GetLex(n:Integer; s:String; l:String):String;
Var i:Integer;
lx,st:String;
Begin
If S<>"" Then
Begin
lx:="";
i:=1;
st:=s;
Delete(st,Length(l)+1,Length(st)-Length(l));
While (st<>l) and (s<>"") do
Begin
lx:=lx+s[1];
Inc(i);
Delete(s,1,1);
st:=s;
Delete(st,Length(l)+1,Length(st)-Length(l));
End;
Delete(s,1,Length(l));
If n>1 Then lx:=GetLex(n-1,s,l);
End
Else
lx:="";
GetLex:=lx;
End;



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.11.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
1-69329
SemFLY
2002-11-12 17:27
2002.11.21
Как установить свои картинки на BitBtn ?


1-69261
бобёр
2002-11-11 23:34
2002.11.21
Seek


3-69215
mas_alexey
2002-11-01 18:23
2002.11.21
Dbgrid


1-69275
Chlavik
2002-11-12 00:39
2002.11.21
Как програмно развенуть ComboBox?


4-69619
progger
2002-10-10 12:19
2002.11.21
Помогите с хуками...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский