![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Вообщем пишу бота, когда приходит запрос он должен из файла найти данную строку и отправить ее адресату, знак разделителя ; (пример: Вопрос1;Ответ1).Заранее спасибо!
|
|
#2
|
|||
|
|||
|
Из вопроса непонятно, в чем у вас затруднения: вы не знаете как найти строку в файле? или как ее разделить? или как отправить ответ?
|
|
#3
|
|||
|
|||
|
на самом деле у меня с файлами вообще труба, ничего мне не понятно,вообще ничего написать не могу
|
|
#4
|
|||
|
|||
|
Если файл текстовый и вам его нужно только читать, то можно его просто загрузить в TStringList и работать со списком строк:
Код:
var
StrList: TStringList;
begin
StrList := TStringList.Create;
StrList.LoadFromFile(<имя_файла>);
{ Дальше работаете со строками файла.
К ним можно обращаться по индексу: StrList[0], StrList[1]
или же StrList[i] и т.п.}
...
{ В конце освобождаете объект списка }
StrList.Free;
end; |
|
#5
|
|||
|
|||
|
Разделить строку по точке с запятой можно так:
Код:
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; |
|
#6
|
|||
|
|||
|
А почему строку не с нулевого символа копируете, а с 1?
Вот здесь: SubStr1 := Copy(SourceStr, 1, i - 1); |