Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

сохранение из 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=что-то


Наверх

Титульная страница Поиск, карта сайта Написать письмо