Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2011, 20:23   #1
gufon
Форумчанин
 
Регистрация: 21.12.2010
Сообщений: 224
По умолчанию Работа со строками

Вот допустим есть такая строка.
Имя:ХХХ Фамилия:ХХХ Номер:ХХХ
Как мне из этой строки получить ХХХ ХХХ ХХХ???
Вроде coopy но как узнать начало и конец.
gufon вне форума Ответить с цитированием
Старый 04.03.2011, 20:53   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну, например через Pos('Имя:',s)
потом Pos('Фамилия:',s) Pos('Номер:',s)

а в общем случае можно и в цикле через Pos(':',s) ...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.03.2011, 20:54   #3
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

Цитата:
начало и конец.
чего?
вы можете вопрос нормально задать?
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 04.03.2011, 21:03   #4
Deight
Бредовый
Форумчанин
 
Аватар для Deight
 
Регистрация: 15.11.2008
Сообщений: 285
По умолчанию

Код:
var i:integer;
j:array[Boolean] of integer;
im,f,o:string;
begin
for i:=5 to length(Edit1.text) do
if Edit1.text[i]=':' then
if j[false]>0 then
j[true]:=i else j[false]:=i;
im:=copy(Edit1.text,5,j[false]-13);
f:=copy(Edit1.text,j[false]+1,j[true]-j[false]-10);
o:=copy(Edit1.text,j[true]+1,length(Edit1.text)-j[true]);
caption:=im+'\'+f+'\'+o;
токо если учитывать что в ФИО нет : и перед Фамилия,Номер есть пробелы
Чем точнее и проще задан вопрос, тем проще на него получить точный ответ.

Последний раз редактировалось Deight; 04.03.2011 в 21:06.
Deight вне форума Ответить с цитированием
Старый 04.03.2011, 21:14   #5
gufon
Форумчанин
 
Регистрация: 21.12.2010
Сообщений: 224
По умолчанию

написал так
Код:
text:= 'ХХХ Фамилия:III Телефон:MMM Конец';
n1:=Pos('Фамилия:', text);
n1:=Pos('Телефон:', text);
n3:=n1+7;
n4:= Pos('Конец', text);
Edit1.Text:=Copy(text, 1, n1-1);
Edit2.Text:= inttostr(n1);
а в edit1
ХХХ Фамилия:III
почему???
в edit2 25
gufon вне форума Ответить с цитированием
Старый 04.03.2011, 21:33   #6
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

вам 1 строку надо на 3 разделить?
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 04.03.2011, 22:18   #7
gufon
Форумчанин
 
Регистрация: 21.12.2010
Сообщений: 224
По умолчанию

да!!!!!!!!!!!!!!!!!!!!!
gufon вне форума Ответить с цитированием
Старый 04.03.2011, 22:59   #8
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

в строке может быть больше параметров, но в такои же последовательности
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  str: string;
  i: integer;
begin
  str := 'Имя:ХХХ Фамилия:MMM Номер:ZZZ';
  i := 0;
  repeat
    inc(i);
    TEdit(FindComponent('Edit' + IntToStr(i))).Text :=
      Copy(str, Pos(':',str) + 1, Pos(' ',str) - Pos(':',str) - 1);
      Delete(str, 1, Pos(' ',str));
  until Pos(' ',str) = 0;
  TEdit(FindComponent('Edit' + IntToStr(i + 1))).Text :=
    Copy(str, Pos(':',str) + 1, Length(str) - Pos(':',str));
  Delete(str,1, Length(str));
end;
VirusN13
ArtGrek вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с матрицами (норма матрицы, работа со строками) Neitrosha Помощь студентам 1 26.11.2010 20:19
Работа со строками.. XOKS JavaScript, Ajax 1 06.10.2010 14:18
Работа с строками Fellics{новичок} Общие вопросы Delphi 5 28.05.2009 18:03