Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.03.2008, 12:10
DeadMan89 DeadMan89 вне форума
Прохожий
 
Регистрация: 22.03.2008
Сообщения: 9
Репутация: 10
По умолчанию Помогите,очень срочно

Вообщем пишу бота, когда приходит запрос он должен из файла найти данную строку и отправить ее адресату, знак разделителя ; (пример: Вопрос1;Ответ1).Заранее спасибо!
Ответить с цитированием
  #2  
Старый 22.03.2008, 13:46
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

Из вопроса непонятно, в чем у вас затруднения: вы не знаете как найти строку в файле? или как ее разделить? или как отправить ответ?
Ответить с цитированием
  #3  
Старый 23.03.2008, 16:37
DeadMan89 DeadMan89 вне форума
Прохожий
 
Регистрация: 22.03.2008
Сообщения: 9
Репутация: 10
По умолчанию

на самом деле у меня с файлами вообще труба, ничего мне не понятно,вообще ничего написать не могу
Ответить с цитированием
  #4  
Старый 23.03.2008, 16:44
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

Если файл текстовый и вам его нужно только читать, то можно его просто загрузить в TStringList и работать со списком строк:
Код:
var
  StrList: TStringList;
begin
  StrList := TStringList.Create;
  StrList.LoadFromFile(<имя_файла>);
  { Дальше работаете со строками файла.
    К ним можно обращаться по индексу: StrList[0], StrList[1] 
    или же StrList[i] и т.п.} 
  ...
  { В конце освобождаете объект списка }
  StrList.Free;
end;
Ответить с цитированием
  #5  
Старый 23.03.2008, 16:48
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

Разделить строку по точке с запятой можно так:
Код:
function DivStr(const SourceStr: String; var SubStr1, SubStr2: String): Boolean;
var
  i: Integer;
begin
  i := Pos(';', SourceStr);
  if i <> 0 then begin
    SubStr1 := Copy(SourceStr, 1, i - 1);  
    SubStr2 := Copy(SourceStr, i + 1, Length(SourceStr) - i);
  end;
  Result := i <> 0;
end;
После выполнения функции в SubStr1 будет часть строки до точки с запятой, в SubStr2 - часть строки после. Если точки с запятой в строке нет, то функция вернет False, иначе (если удалось разделить строку) - True.
Ответить с цитированием
  #6  
Старый 23.03.2008, 17:12
Brute Force Brute Force вне форума
Прохожий
 
Регистрация: 21.03.2008
Сообщения: 15
Репутация: 10
По умолчанию

А почему строку не с нулевого символа копируете, а с 1?
Вот здесь: SubStr1 := Copy(SourceStr, 1, i - 1);
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:13.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025