Форум: "Потрепаться";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
ВнизПреобразовать строку в отдельные слова!! Найти похожие ветки
← →
Werg (2005-12-23 19:12) [0]Помогите пожалуйста! Такая вот проблема! В текстовом файле
в 1 строке находятся разные слова, которые отделены одним или несколькими пробелами!
Как каждое слово занести в массив?
К примеру строка: "1232 35445432 3 45 32" нужно чтобы было, m[1]:="1232"; m[2]:="35445432" ну и т.д
Чето не получается!!!
← →
oldman © (2005-12-23 19:15) [1]for пока не пробел
then добавить в слово N
else начать слово N+1
← →
MacroDenS © (2005-12-23 19:53) [2]Старая задачка для начинающих звучала примерно так:
необходимо подсчитать количество слов в ствроке. В контексте подразумевалось, что должны считаться именно слова а не пробелы, так же за слова не считались отдельно стоящие знаки пенктуации.
Для размышления:
считывая строку, анализируй символ по циклу и символ с коэффициентом +1
← →
umbra © (2005-12-23 20:03) [3]
type
TStringArray = array of strings;
{............................................}
function StringToWords(src: string): TStringArray;
var
offs, len: integer;
begin
SetLength(result, 0);
while length(src) > 0 do
begin
SetLength(Result, Length(Result) + 1);
offs := LastDelimiter(" ", src);
len := Length(src) - offs;
Result[High(Result)] := RightStr(src, len);
if offs > 0 then
repeat
dec(offs);
until (offs > 0) or (src[offs] <> " ");
SetLength(src, offs);
end;
end;
← →
MBo © (2005-12-24 07:49) [4]проще всего - использовать TStringList.CommaText
← →
MasterPaleva © (2005-12-24 08:10) [5]var
m: array of string;
i, j: integer;
begin
j:=0;
SetLength(m, 1);
for i:=1 to length(slovo) do begin
// если нужно вытащить только цифры
if (chr(slovo[i])>47) and (chr(slovo[i])<58) then m[j]:=m[j]+slovo[i] else
if length(m[j])>0 then inc(j);
end;
end;
Корявенько но очень просто и понятненько :)
← →
MasterPaleva © (2005-12-24 08:19) [6]Сорри, ошибочка.
var
m: array of string;
i, j: integer;
begin
j:=0;
SetLength(m, 1);
for i:=1 to length(slovo) do begin
if (chr(slovo[i])>47) and (chr(slovo[i])<58) then m[j]:=m[j]+slovo[i] else
if length(m[j])>0 then begin
inc(j);
setlength(m, length(m)+1);
end;
end;
end;
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.09 c