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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2010, 22:51   #1
garyanikin
Дизайнер, Кодер.
Пользователь
 
Аватар для garyanikin
 
Регистрация: 31.12.2009
Сообщений: 45
По умолчанию Строки и файл...

Здравствуйте.
Есть файл in.txt в нём текст, формата: blabla lalal;ala.
Нужно поделить строчки и брать токлько blabla
как это сделать? Я вот попытался, но пишет List index out of bounds
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
mail, hash : string;
SL: TStringList;
begin
Sl:=TStringList.Create;
if FileExists('in.txt') then begin
SL.LoadFromFile('in.txt');
for i:=0 to Sl.Count-1 do
mail:= copy(SL.Strings[i],0,pos(' ',SL.Strings[i])-1);
hash:= copy(SL.Strings[i],pos(' ',SL.Strings[i])+1,32);
Edit1.Text := mail;
end;
end;
Заранее спасибо)
garyanikin вне форума Ответить с цитированием
Старый 17.01.2010, 23:01   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
for i:=0 to Sl.Count-1 do begin
mail:= copy(SL.Strings[i],0,pos(' ',SL.Strings[i])-1);
hash:= copy(SL.Strings[i],pos(' ',SL.Strings[i])+1,32);
Edit1.Text := mail; end;
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.01.2010, 23:07   #3
garyanikin
Дизайнер, Кодер.
Пользователь
 
Аватар для garyanikin
 
Регистрация: 31.12.2009
Сообщений: 45
По умолчанию

А как потом сделать что бы если имайл подходит удалялось blabla и остовалось только lalal;ala.
А если не подходит удалялось вся строка.
Знаю что глупый вопрос, просто щас вообще голова не варит(
garyanikin вне форума Ответить с цитированием
Старый 17.01.2010, 23:11   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
copy(SL.Strings[i],1,pos(' ',SL.Strings[i])-1);
еще ошибочка.
тут Copy на Delete замените
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.01.2010, 23:27   #5
DeDoK
Форумчанин
 
Аватар для DeDoK
 
Регистрация: 05.11.2007
Сообщений: 392
По умолчанию

Пепел Феникса, обьясните почему 1 ?
DeDoK вне форума Ответить с цитированием
Старый 17.01.2010, 23:28   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

строки начинаются с 1 а не 0, 0 может привести к тому что вообще вернет '' а не то что надо.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 17.01.2010 в 23:29. Причина: Опечатки, будь они не ладны.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.01.2010, 23:29   #7
garyanikin
Дизайнер, Кодер.
Пользователь
 
Аватар для garyanikin
 
Регистрация: 31.12.2009
Сообщений: 45
По умолчанию

И вот ещё вопрос, извините если слишком много вопросов, но я только учусь!
Вот код
Код:
...
for i:=0 to Sl.Count-1 do begin
Application.ProcessMessages;
mail:= copy(SL.Strings[i],1,pos(' ',SL.Strings[i])-1);
hash:= copy(SL.Strings[i],pos(' ',SL.Strings[i])+1,32);
Edit2.Text := mail;
Edit2.Refresh;
ProgressBar1.Position := ProgressBar1.Position+1;
progress :=  progress-1;
Label4.Caption := 'Îñòàëîñü ðåòðèâèòü:' +IntToStr(progress);
Label4.Refresh;
sleep(2000)
end;
end;
end;
Но почему во время работы цикла её нельзя закрыть и вообще что либо с ней делать?
garyanikin вне форума Ответить с цитированием
Старый 17.01.2010, 23:33   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

изза sleep(2000)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись строки в файл SL1CK Общие вопросы Delphi 3 07.01.2010 16:20
Текстовый файл. Строки. Не понятно условие Angelwood Паскаль, Turbo Pascal, PascalABC.NET 10 05.06.2009 16:29
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10
Как вписать строки в файл Master-Skull Общие вопросы Delphi 17 07.09.2007 14:45
Как из Memo вывести строки в txt файл в конец там существующих Saili Компоненты Delphi 8 16.12.2006 11:23