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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2012, 20:57   #1
montreyka
 
Регистрация: 27.01.2010
Сообщений: 3
Вопрос Вырезать часть строки

Доброго времени суток.
Подскажите новичку.
В ini файле есть строка: VXZC$80699453440 VCZX2$27412221952 ZXCV3$53287231488
Что нужно сделать чтоб часть строки выводилась в label от $ до пробела, затем от 2$ до второго " " и т.д. цифр между символами может быть разное количество. Кстати после символов будут только цифры, думаю это как то меняет дело
Чтение из ini файла и вывод я примерно понимаю как сделать, но если что то посоветуете буду признателен.

Следующий способ не подходит т.к. неизвестно кол-во цифр:

Код:
procedure TForm2.Button5Click(Sender: TObject);
var s,word: string;
begin
  s:=edit1.text;
  word:=Copy(s,1,Pos('2$',s)-2);
  ShowMessage('Свободно: '+word);
end;
montreyka вне форума Ответить с цитированием
Старый 26.03.2012, 22:19   #2
weech
Пользователь
 
Аватар для weech
 
Регистрация: 16.11.2011
Сообщений: 91
По умолчанию

Код:
repeat
read(a); 
until Pos(a,s)=Pos('$',s)-2;
   repeat
   read(a);
   word:=word+a;
   until Pos(a,s)=Pos(' ',s);
Вроде так.

Последний раз редактировалось weech; 26.03.2012 в 22:26.
weech вне форума Ответить с цитированием
Старый 26.03.2012, 22:32   #3
montreyka
 
Регистрация: 27.01.2010
Сообщений: 3
По умолчанию

спасибо, решил сделать так

Нашел позицию(pos) "$", записал в переменную, удалил(delete) все до нее, скопировал(copy) все до пробела и дальше по кругу.
montreyka вне форума Ответить с цитированием
Старый 26.03.2012, 22:35   #4
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

ИМХО, лучше так:
Код:
uses StrUtils;

procedure TForm1.Button1Click(Sender: TObject);
var
  KP, KS : Integer;
  S, Word : string;
begin
  s := edit1.text;
  KP := Pos('$', S);
  KS := Pos(' ', S);
  while KP > 0 do begin
    Word := Copy(S, KP+1, KS-KP-1);
    ShowMessage(Word);
    Inc(KP); KP := PosEx('$', S, KP);
    Inc(KS); KS := PosEx(' ', S, KS);
    if KS = 0 then KS := Length(S)+1;
  end;
end;
Прик вне форума Ответить с цитированием
Старый 26.03.2012, 22:40   #5
montreyka
 
Регистрация: 27.01.2010
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Прик Посмотреть сообщение
ИМХО, лучше так:
Код:
uses StrUtils;

procedure TForm1.Button1Click(Sender: TObject);
var
  KP, KS : Integer;
  S, Word : string;
begin
  s := edit1.text;
  KP := Pos('$', S);
  KS := Pos(' ', S);
  while KP > 0 do begin
    Word := Copy(S, KP+1, KS-KP-1);
    ShowMessage(Word);
    Inc(KP); KP := PosEx('$', S, KP);
    Inc(KS); KS := PosEx(' ', S, KS);
    if KS = 0 then KS := Length(S)+1;
  end;
end;
хм... спасибо тоже как вариант, наверное работать быстрее будет)
montreyka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++: как вырезать 2 символа из строки Blondy Помощь студентам 6 05.03.2011 15:33
Вырезать часть строки. sergeyrulit Общие вопросы Delphi 2 22.10.2010 22:25
вырезать из строки нужные числа fize Помощь студентам 1 16.12.2009 18:25
Вырезать из строки string слово sasha1993 Общие вопросы Delphi 3 24.07.2009 22:11
Строки. Как вывести часть строки? Anfall Общие вопросы Delphi 7 26.02.2009 09:10