Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Строки, Вырезать часть строки 
:(
    Опции темы
montukxd
  Дата 26.3.2012, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 26.3.2012

Репутация: нет
Всего: нет



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


 smile 

Это сообщение отредактировал(а) montukxd - 26.3.2012, 19:37
PM MAIL WWW   Вверх
montukxd
Дата 26.3.2012, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 26.3.2012

Репутация: нет
Всего: нет



решил сделать так 

 Нашел позицию(pos) "$", записал в переменную, удалил(delete) все до нее, скопировал(copy) все до пробела и дальше по кругу.
PM MAIL WWW   Вверх
Чучмек
Дата 27.3.2012, 01:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 7
Всего: 41



Код

var
 p,pt,r:pchar;
 s:string;
 m:array of pchar;
 strcount:cardinal;
 i:integer;
label
 _begin,_end;
begin
s:='VXZC$80699453440   VCZX2$27412221952   ZXCV3$53287231488';
getmem(p,(length(s)+1)*sizeof(char));
strcopy(p,pchar(s));
strcount:=0;
pt:=p;
_begin:
 pt:=strpos(pt,'$');
 if pt=nil then goto _end;
 r:=pt+1;
 if strcount>=length(m) then setlength(m,length(m)+256);
 m[strcount]:=r;
 inc(strcount);
 pt:=strpos(r,' ');
 if pt=nil then goto _end;
 pt^:=#0;
 pt:=pt+1;
 goto _begin;
_end:


for i:=0 to strcount-1 do
memo1.Lines.Add(m[i]);


m:=nil;
freemem(p);

end;




--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
northener
Дата 27.3.2012, 02:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(montukxd @  26.3.2012,  21:33 Найти цитируемый пост)
Нашел позицию(pos) "$", записал в переменную, удалил(delete) все до нее, скопировал(copy) все до пробела и дальше по кругу. 

В целом правильное решение. Токмо зачем запоминать в переменной позицию(pos) "$", если алгоритм предполагает сразу "удалил(delete) все до нее"?

Это сообщение отредактировал(а) northener - 27.3.2012, 03:51


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
northener
Дата 27.3.2012, 03:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(Чучмек @  27.3.2012,  01:46 Найти цитируемый пост)
Дата 27.3.2012, 01:46

Вы уж пожалуйста определитетесь на какой версии Дельфи вы работаете?  И для какой версии Дельфи вы даёте ответы.


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
montukxd
Дата 27.3.2012, 04:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 26.3.2012

Репутация: нет
Всего: нет



Цитата

В целом правильное решение. Токмо зачем запоминать в переменной позицию(pos) "$", если алгоритм предполагает сразу "удалил(delete) все до нее"?


Верно, спасибо за подсказку, буду экспериментировать))
PM MAIL WWW   Вверх
Чучмек
Дата 27.3.2012, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 7
Всего: 41



Цитата(northener @  27.3.2012,  03:59 Найти цитируемый пост)
И для какой версии Дельфи вы даёте ответы

А что не так? На любой будет работать.
Цитата(northener @  27.3.2012,  03:59 Найти цитируемый пост)
Вы уж пожалуйста определитетесь на какой версии Дельфи вы работаете?

На 7, хотя XE2 тоже стоит. 



--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
Qu1nt
Дата 27.3.2012, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 13.1.2007

Репутация: 22
Всего: 50



Код

uses
  RegularExpressions;

Memo1.Lines.AddStrings(TRegEx.Split('VXZC$80699453440   VCZX2$27412221952   ZXCV3$53287231488', '\w+\$'));


Это сообщение отредактировал(а) Qu1nt - 27.3.2012, 10:13
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0473 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.