Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2011, 08:13   #1
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию StringList - загрузка/передача ID-ентификатора и строки?

Всем привет,
Столкнулся с такой головоломкой,

Есть текстовый фаил с таким форматированием:
Код:
moscou|Москва
saratov|Саратов
и т д, где:
moscou - ID
| - разделитель
Москва - название

Загружаю в ComboBox так:
Код:
var
  sl: TStringList;
...
begin
    sl.LoadFromFile(ExtractFilePath(ParamStr(0)) + '\City\ru.txt');
    sComboBox1.Items.Assign(sl);
end;
sl.Free;
end;
Что мне надо:
При загрузке в ComboBox выводить название, а ID передавать в некую переменную, функцию и т д, для дальнейшей работы именно с ID.

Как мне решить сие?

Последний раз редактировалось XerSon; 31.03.2011 в 08:15.
XerSon вне форума Ответить с цитированием
Старый 31.03.2011, 08:27   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

В ComboBox строки вводить в цикле построчно и только название. TStringList сделать доступным для всей формы и не удалять после загрузки в ComboBox. В дальнейшем по текущему индексу строки в ComboBox можно найти строку в TStringList и взять из неё идентификатор для использования
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 31.03.2011, 08:32   #3
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
В ComboBox строки вводить в цикле построчно и только название.
Вот тут то как раз и вся загвостка!

С остальным все понятно, примерно так и хотел решить.
XerSon вне форума Ответить с цитированием
Старый 31.03.2011, 08:41   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
for i:=0 to StringList.Count-1 do begin
  s:=StringList.Strings[i];
  j:=Pos('|',s);
  ComboBox.Items.Add(Copy(s,j+1,Length(s)-j));
end;
Это упрощенно без анализа корректности исходных данных
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 31.03.2011, 08:42   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Вот тут то как раз и вся загвостка!
С остальным все понятно, примерно так и хотел решить.
тоже мне, бином Ньютона....
Код:
  sl := TStringList.Create;
  sl.LoadFromFile(ExtractFilePath(ParamStr(0)) + '\City\ru.txt');
  sComboBox1.Items.Clear;
  for i:=0 to sl.Count-1 do 
    p1 := pos('|', sl.Strings[i]);
    {если в строке есть разделитель}
    if p1>0 then 
          sComboBox1.Items.Append(Copy(sl.Strings[i],p1+1, Length(sl.Strings[i])-p1));


Добавлено
блииин, Аватар меня на одну минуту опередил!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 31.03.2011, 09:23   #6
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Это упрощенно без анализа корректности исходных данных
Все Получилось!

Спасибо Всем!

Последний раз редактировалось XerSon; 31.03.2011 в 09:52.
XerSon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
передача строки подключения в раздел web.config C# (ASP.NET) Droid Общие вопросы .NET 0 25.10.2010 15:55
передача строки с телефона на комп через интернет на Java sum42 Общие вопросы по Java, Java SE, Kotlin 13 13.12.2009 19:40
Раздваивание строки в StringList (Delphi 7) alxd Помощь студентам 8 23.09.2009 13:11
передача параметров программе при запуске из командной строки shurik_7866 Общие вопросы Delphi 3 03.06.2009 18:23
Передача строки-как параметра-переменной Иллидан Общие вопросы Delphi 13 03.10.2008 18:40