![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
сохранение из TStringList в переменную типа string [D7]
McLotos © (2013-01-14 21:02:00)В предыдущей теме ( http://www.delphimaster.ru/cgi-bin/forum.pl?id=1358163221&n=18), в которой меня любезно послали по известному адресу был представлен код, после нескольких попыток разобраться в чем все-же проблема я пришел к выводу что всё дело именно в типе TStringList
Чтобы было понятнее откуда такие сложности поясню некоторые моменты на примере
var
Account : TStringList;
begin
Account := TStringList.Create;
//записываем полученный текст
Account.CommaText := Socket.ReceiveText;
//выводим на экран чтобы было видно что всё на месте
log.Lines.Add (Account.Values['Login'] + ' + ' + Account.Values['Password']);
Теперь собственно вопрос
Как сохранить эти данные в отдельные переменные?
Login:=Account.Values['Login'];
ничего не дало, переменная Login почему-то оказалась пустой.
На одном американском форуме видел вариант
Login:=Account.Text;
но я так думаю это на случай если мне нужно сохранить всё в одну переменную, а мне это никак не надо.
O'ShinW (2013-01-15 08:47:00) [1]т.е. это в одном месте все,
или в одном ловим, в другом проверяем?
O'ShinW (2013-01-15 08:46:00) [2]
> Socket.ReceiveText;
а не посылает ли пустоту сокет в перерыве м/д проверками?
sniknik (2013-01-15 08:07:00) [3]> пришел к выводу что всё дело именно в типе TStringList
противоречит -
> if (Account.Values['Login']<>'') and (Account.Values['Password']<>'') // вытягиваем оттуда нужные данные
> //а затем радостно нам сообщает что в базе есть 1 такой пользователь
из прошлого вопроса. если она что то "сообщала", даже 0, значит проблема не пустых переменных.
MBo (2013-01-15 07:52:00) [4]>пришел к выводу что всё дело именно в типе TStringList
проверим:
var
Account : TStringList;
Login: string;
begin
Account := TStringList.Create;
Account.CommaText := 'Login=Vasya Password=Pupkin';
Login := Account.Values['Login'];
Caption := Login;
Account.Free;
Вижу вывод 'Vasya', и прихожу к выводу, что вряд ли дело в типе TStringList...
Германн (2013-01-15 01:52:00) [5]
> Ega23 © (14.01.13 22:05) [6]
>
>
> > либо где то есть
>
>
> Тогда бы к ней нельзя было значение приравнять
Про область видимости не забывай, если уж так требовал от автора признания "его ли это код или нет?". :)
Плохиш (2013-01-14 23:35:00) [6]
> в которой меня любезно послали по известному адресу
Ты всё-таки сходи по тому адресу. Тебя туда не просто так послали.
Медвежонок Пятачок (2013-01-14 22:06:00) [7]Есть переменная и есть функция.
Присваивается одному, а шоумессадж делается другому.
Либо его глючит.
Ega23 (2013-01-14 22:05:00) [8]
> либо где то есть
Тогда бы к ней нельзя было значение приравнять
Медвежонок Пятачок (2013-01-14 21:32:00) [9]либо где то есть
function Login : string;
begin
result := '';
end;
Медвежонок Пятачок (2013-01-14 21:31:00) [10]У тебя галюцинации.
McLotos (2013-01-14 21:29:00) [11]нет, Account.Values['Login'] выводит значение
а вот
Login:string;
Login:=Account.Values['Login'];
ShowMessage(Login);
показывает дырку от бублика!
Хотя это очень и очень странно.
Медвежонок Пятачок (2013-01-14 21:10:00) [12]ничего не дало, переменная Login почему-то оказалась пустой.
Наоборот все дало.
Было бы странным, если бы в переменную что-то записалось кроме пустой строки, в то время как в Account.Values['Login'] - пустота.
Игорь Шевченко (2013-01-14 21:04:00) [13]
> ничего не дало, переменная Login почему-то оказалась пустой.
потому что в списке нет строки с текстом Login=что-то