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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление символов в строке до символа = 
V
    Опции темы
sprus80
Дата 11.9.2012, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть Memo с строками типа 
18=1544 1 77 89
19=1548 1 78 910
20=1788 1 78 95
 нужно удалить символы до = (и его тоже)

Удалял так

Код

Source := Memo1.lines.text;
Delete(Source,1,Pos('=',Source));


Но она работает с одной огромной строкой. Мне это не подходит, подскажите пожалуйста как работать в цикле с каждой строкой.
Пробовал написать такой обработчик, но он не работает.

Код

procedure TForm1.Button4Click(Sender: TObject);
var
   Source : string;
   i: Integer;
begin
for i:=0 to Memo1.Lines.Count-1 do
begin
 Source := Memo1.lines.Strings[i];
  Delete(Source,1,Pos('=',Source));
 end;
 end;


Сильно не пинайте, с циклом почти не работал.
PM MAIL   Вверх
DarkProg
Дата 11.9.2012, 12:14 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


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

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



Ну а, как бы по второму способу, если присвоить результат строке откуда текст извлекли, работать не будет?


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
superVad
Дата 11.9.2012, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

так
  Source := Memo1.lines[i];
  Delete(Source,1,Pos('=',Source));
  Memo1.lines[i] := Source;

может так
  Delete(Source,1,Pos('=',Memo1.lines[i]));


PM MAIL   Вверх
lomaster
Дата 11.9.2012, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Откуда в мемо эти строки взялись?
PM   Вверх
kami
Дата 11.9.2012, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(sprus80 @  11.9.2012,  12:06 Найти цитируемый пост)
Memo1.lines.Strings[i];

И так постепенно доберемся до EOutOfMemory, если текста достаточно много smile
Но если немного - тогда нормально.
 ашипка.

Голосую за первый вариант superVad  smile 

Это сообщение отредактировал(а) kami - 11.9.2012, 12:48
PM MAIL WWW   Вверх
sprus80
Дата 11.9.2012, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В Memo текст грузиться из txt файла через openDialog, размер не большой

Код

procedure TForm1.Button1Click(Sender: TObject);
var
Source : string;
i: Integer;
begin
Memo1.Lines.Delete(0); //удаляю первую строку
 for i:=0 to Memo1.Lines.Count-1 do / цикл 0n 0 до последней строки
   Delete(Source,1,Pos('=',Memo1.lines[i])); 
theen
   Memo1.lines[i] := Source; /вывод результата
end;


цикл не работоспособен. Пните что не так.
PM MAIL   Вверх
БелАмор
Дата 11.9.2012, 13:02 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(kami @  11.9.2012,  13:42 Найти цитируемый пост)
Голосую за первый вариант superVad  

Тогда ещё вариант на конкурс:

Код

var
  i: Integer;
begin
  for i := 0 to Memo1.Lines.Count-1 do
    Memo1.Lines[i] := Memo1.Lines.ValueFromIndex[i];
end;

PM   Вверх
lomaster
Дата 11.9.2012, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата

В Memo текст грузиться из txt файла через openDialog, размер не большой

грузите в TStringList, потом в мемо пойдет уже как надо.  Типа так: Memo.Lines.Assign(TStringList.Values);
PM   Вверх
sprus80
Дата 11.9.2012, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Сделал так 

Код

procedure TForm1.Button2Click(Sender: TObject);
var
 i: Integer;
 begin
 Memo1.Lines.NameValueSeparator := '=';
 Memo2.Clear;
 for I := 0 to Memo1.Lines.Count - 1 do
 begin
 Memo2.Lines.Add(Memo1.Lines.ValueFromIndex[i]);
 Memo1.Lines[i] := Memo1.Lines.Names[i];
 end;
 end;

конечно через одно место, но работает

Спасибо всем за помощь, подтолкнули.

Это сообщение отредактировал(а) sprus80 - 11.9.2012, 17:38
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.1158 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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