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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.01.2011, 20:50
Аватар для casperock
casperock casperock вне форума
Прохожий
 
Регистрация: 23.09.2010
Адрес: Україна, Єнакієве
Сообщения: 21
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Перевод из строки в массив

У меня есть *.txt файл вида:

login1: pass1
login2: pass2



Подскажите как можно все логины и пароли перевести в два масива, с паролями и логинами по порядку?
__________________
"Если бы выборы и голосование приводили к положительному результату и радующим население переменам, их давно уже объявили бы противозаконными!"
Лайэм Галлахер
Ответить с цитированием
  #2  
Старый 21.01.2011, 21:36
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

как вариант через Copy(s, 1, Pos(':', s) - 1)
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #3  
Старый 21.01.2011, 21:42
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Код:
type
  TLogin = Record
    Log, Pas: String;
  end;

var
  Form1: TForm1;

  Mas: Array[1..3] of TLogin;
  N: Integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  Str: TStringList;
  i: Integer;
begin
{
  Файл должен быть типа:
  Логин1:Пароль1
  Логин2:Пароль2
  ...
}
  N := 1;
  Str := TStringList.Create;
  Str.LoadFromFile('myfile.txt');
  for i:=0 to Str.Count-1 do begin
    Mas[N].Log := Copy(Str.Strings[i], 1, Pos(':', S)-1);
    Mas[N].Pas := Copy(Str.Strings[i], Pos(':', S)+1, Length(Str.Strings[i])-Pos(':', S));
    inc(N);
  end;
  Str.Free;
// теперь в массиве Mas[i] хранятся логины пароли.
Это не идеальный вариант, но работать будет.
Также возможно разбить логины-пароли:
Код:
  S := StringReplace(S, ':', #10#13, [rfReplaceAll]);
Тогда пройтись циклом по всем строчкам, в нечетных были бы логины, в четных - пароли.


ЗЫ пока писал уже ответили
__________________
Помогаю за Спасибо
Ответить с цитированием
  #4  
Старый 21.01.2011, 22:03
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

@v1s2222 #13#10 лучше заменить на sLineBreak
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #5  
Старый 21.01.2011, 23:04
Аватар для casperock
casperock casperock вне форума
Прохожий
 
Регистрация: 23.09.2010
Адрес: Україна, Єнакієве
Сообщения: 21
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

v1s2222, спасибо. Скажи, а как можно оформить твой код для вставки в программу, а то что то у меня одни ошибки вылазят. Например в роли процедуры.
__________________
"Если бы выборы и голосование приводили к положительному результату и радующим население переменам, их давно уже объявили бы противозаконными!"
Лайэм Галлахер
Ответить с цитированием
  #6  
Старый 21.01.2011, 23:30
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Код:
type
  TLogin = Record
    Log, Pas: String;
  end;

var
  Form1: TForm1;

  Mas: Array[1..3] of TLogin;
  N: Integer;

implementation

{$R *.dfm}

procedure LoadLogins;
var
  Str: TStringList;
  i: Integer;
begin
{
  Файл должен быть типа:
  Логин1:Пароль1
  Логин2:Пароль2
  ...
}
  N := 1;
  Str := TStringList.Create;
  Str.LoadFromFile('C:\1.txt');
  for i:=0 to Str.Count-1 do begin
    Mas[N].Log := Copy(Str.Strings[i], 1, Pos(':', Str.Strings[i])-1);
    Mas[N].Pas := Copy(Str.Strings[i], Pos(':', Str.Strings[i])+1, Length(Str.Strings[i])-Pos(':', Str.Strings[i]));
    inc(N);
  end;
  Str.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  LoadLogins;
  showmessage('Первый логин: ' + mas[1].Log + '; 1 Пароль: ' + mas[1].Pas);
end;
__________________
Помогаю за Спасибо
Ответить с цитированием
  #7  
Старый 22.01.2011, 15:26
Аватар для casperock
casperock casperock вне форума
Прохожий
 
Регистрация: 23.09.2010
Адрес: Україна, Єнакієве
Сообщения: 21
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

v1s2222, большое спасибо!)) Работает))

А как можно сделать так чтоб можно было переводить динамическое количество строк в файле, ну соответственно и узнать номер последней записи в массиве?
__________________
"Если бы выборы и голосование приводили к положительному результату и радующим население переменам, их давно уже объявили бы противозаконными!"
Лайэм Галлахер

Последний раз редактировалось casperock, 22.01.2011 в 15:54.
Ответить с цитированием
  #8  
Старый 23.01.2011, 23:26
Аватар для casperock
casperock casperock вне форума
Прохожий
 
Регистрация: 23.09.2010
Адрес: Україна, Єнакієве
Сообщения: 21
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Поможет кто?))
__________________
"Если бы выборы и голосование приводили к положительному результату и радующим население переменам, их давно уже объявили бы противозаконными!"
Лайэм Галлахер
Ответить с цитированием
  #9  
Старый 24.01.2011, 00:47
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от casperock
Поможет кто?))

описание динамического массива:
Код:
var
  A : Array Of String;

Функции работы с дин. массивами:
SetLength() - утсановка длинны массива;
Low() - индекс нижнего элемента;
High() - индекс верхнего элемента.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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