Пятница, 22 Ноября 2024, 14:15

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
[?]Delphi: Запись части строки в переменную
ScvadДата: Пятница, 11 Января 2013, 18:29 | Сообщение # 1
участник
Сейчас нет на сайте
Приветствую, пользователи gcup.ru! smile

В общем есть такой код:

Код

OpenDialog1.InitialDir:=ExtractFilePath(Application.ExeName);
  if OpenDialog1.Execute then
   begin
   Mails.Clear;
   Mails.LoadFromFile(OpenDialog1.FileName);
   Label2.Caption:=inttostr(Mails.Count);
    end;


Данный код загружает в программу файл,все его содержимое пишется в Mails, а в Label2 пишется общее количество строк в данном текстовике.
Строки в файле вида: login;pass
Что дописать что бы часть строки до ";" (то есть login) загружалось в Mails, а после ";" загружалось в Pass.

С меня +.


karuyДата: Пятница, 11 Января 2013, 19:06 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Код
var
   l, p: string;

const
   s = 'login;pass';

begin
   l := Copy(s, 1, Pos(';', s) - 1);
   p := Copy(s, Pos(';', s) + 1, Length(s));
end;
TimKruzДата: Суббота, 12 Января 2013, 17:18 | Сообщение # 3
старожил
Сейчас нет на сайте
Mails и Pass - это TMemo, правильно? Как-то так:
Код
procedure TForm1.Button1Click(Sender: TObject);
var s:string;
begin
   OpenDialog1.InitialDir:=ExtractFilePath(Application.ExeName);
   if OpenDialog1.Execute then
     if FileExists(OpenDialog1.FileName) then //Проверяем существование файла
     begin
       Mails.Lines.Clear; //Именно lines.clear, а не просто clear
       Pass.Lines.Clear;
       AssignFile(input,OpenDialog1.FileName);
       Reset(input);
       while not eof(input) do //До конца файла
       begin
         readln(input,s);
         //Вот это я у karuy скопировал.
         //Тут всё просто - Pos(строка №1, строка №2) ищет строку №1 (символ) в строке №2
         //и возвращает позицию первого её вхождения,
         //а Copy(строка, первый символ, последний символ) возвращает подстроку указанной длины из заданной строки.
         Mails.Lines.Add(Copy(s, 1, Pos(';', s) - 1));
         Pass.Lines.Add(Copy(s, Pos(';', s) + 1, Length(s)));
       end;
       Label2.Caption:=inttostr(Mails.Lines.Count);
     end else MessageDlg('Файл не существует!',mtError,[mbOk],0);
end;


ScvadДата: Воскресенье, 13 Января 2013, 12:35 | Сообщение # 4
участник
Сейчас нет на сайте
Спасибо,парни. smile

  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг