Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.29;
Скачать: CL | DM;

Вниз

Как разбить строку на части   Найти похожие ветки 

 
Александр ©   (2002-08-18 17:35) [0]

Как разбить строку на части? Например все, что написано до первого "\" в одну переменную (str1), а остальное - в другую (str2). Спасибо.


 
Юрий Зотов ©   (2002-08-18 17:40) [1]

См. функции Pos и Copy. Может пригодиться и Delete.


 
Ev_genus ©   (2002-08-18 19:31) [2]


procedure GetStr(s:string; var str1, str2:string);
var
i, l:word;
begin
str1:="";
str2:="";
l:=length(s);
if l<>0 then begin
i:=1;
while s[i]<>"/" do inc(i);
if i>1 then str1:=copy(s, 1, i-1);
if l>i then str2:=copy(s, i+1, l-i);
end;
end;


 
Esu ©   (2002-08-18 21:32) [3]


> while s[i]<>"/" do inc(i);

будет искать несуществующий "/" до новых веников. Хотя там вроде какая-то зашщита стоит. А вот если найдет за пределами то последующий copy попытается скопировать в чужую область памяти.
А вообще конечно на это pos придумали.


 
Ev_genus ©   (2002-08-18 21:34) [4]

согласен

procedure GetStr(s:string; var str1, str2:string);
var
i, l:word;
begin
str1:="";
str2:="";
l:=length(s);
if l<>0 then begin
i:=1;
while (s[i]<>"/") and (i<l) do inc(i);
if i>1 then str1:=copy(s, 1, i-1);
if l>i then str2:=copy(s, i+1, l-i);
end;
end;




 
Esu ©   (2002-08-18 21:40) [5]

Помоему так :) Зачем изобретать велосипед.

procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
s : string;
begin
s := edit3.Text;
i := pos("\", s);
if i <> 0 then
begin
edit1.Text := copy(s, 1, i-1);
edit2.Text := copy(s, i+1, length(s)-i);
end;
end;


 
SemFLY ©   (2002-08-19 00:56) [6]

Можно разделить и без символа, вот пример.
- - - - - - -
Имеется строка состоящая из двух прараметров:

первый параметр + #13#10 + второй параметр
#13#10 - разделение строки на две строчки
str1 = первый параметр
str2 = второй параметр
...


var
TTSL : TStringList;
str1, str2 : String;
begin
...

TTSL := TStringList.Create;
TTSL.Text := Param;
str1 := TTSL.Strings[0];
str2 := TTSL.Strings[1];

...
end;



P.S. Конечно составляя строку, надо не забывать разбивать её в нужных местах на части, знаком #13#10 !

;-)


 
Ray Adams   (2002-08-19 01:45) [7]

А лучше всего использовать библиотеку Регулярных выражений и не мучаться. Зачем изобретать велосипед?



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

Текущий архив: 2002.08.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
4-96018
z0ne
2002-06-26 12:42
2002.08.29
Проблема с BeginPath


1-95791
SetupOS
2002-08-19 21:21
2002.08.29
Как программно прокрутить RichEdit вверх, вниз…


1-95836
Alcatraz
2002-08-17 13:32
2002.08.29
Как сделать опрделение дисков в Дельфи ?


3-95732
Ангелика
2002-08-09 15:38
2002.08.29
Нужно скопировать из текст.файла в таблицу dbf значения...


14-95938
ArtGamer
2002-08-02 19:28
2002.08.29
Как соединить 2 компа по витой паре?