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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.01.2011, 14:34
Михалыч Михалыч вне форума
Начинающий
 
Регистрация: 08.09.2008
Сообщения: 142
Репутация: 15
По умолчанию Сохранение данных программы

Подскажите как лучше организовать сохранение данных ввода, в частности Combobox.
Делал так ComboBox1.Items.SaveToFile ('1.txt');, все работает но это если имеется только один ComboBox, а вот если их несколько тогда как?
Сохранять каждый ComboBox в отдельный файл не вариант.

Последний раз редактировалось Михалыч, 09.01.2011 в 14:42.
Ответить с цитированием
  #2  
Старый 09.01.2011, 14:47
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Сохраняй все в ИНИ файл, либо свой типизированный. (var F: File of MyType).
__________________
Помогаю за Спасибо
Ответить с цитированием
  #3  
Старый 09.01.2011, 15:11
Михалыч Михалыч вне форума
Начинающий
 
Регистрация: 08.09.2008
Сообщения: 142
Репутация: 15
По умолчанию

Разобрался, вот так работает Ini.WriteString('Исходные данные','ComboBox1',ComboBox1.Items.Text);

Последний раз редактировалось Михалыч, 09.01.2011 в 15:39.
Ответить с цитированием
  #4  
Старый 09.01.2011, 16:24
Михалыч Михалыч вне форума
Начинающий
 
Регистрация: 08.09.2008
Сообщения: 142
Репутация: 15
По умолчанию

Возникла теперь еще одна проблема. Теперь если нажать на конопку сохранить несколько раз то столько же раз данные добавляются в файл. В общем нужно чтобы данные в файл добавлялись,но предыдущие удалялись а потом уже записывались новые.
Ответить с цитированием
  #5  
Старый 09.01.2011, 17:08
PlanetDigits PlanetDigits вне форума
Прохожий
 
Регистрация: 25.12.2010
Сообщения: 5
Репутация: 10
По умолчанию

А ты по нажатию на кнопку сначала удаляй файл!
Ответить с цитированием
  #6  
Старый 09.01.2011, 17:22
Михалыч Михалыч вне форума
Начинающий
 
Регистрация: 08.09.2008
Сообщения: 142
Репутация: 15
По умолчанию

Цитата:
Сообщение от PlanetDigits
А ты по нажатию на кнопку сначала удаляй файл!
Ок. Так и сделал, все работает спасибо.
Еще одна проблеммка, как теперь загрузить данные из файла.
Пишу так Ini.ReadString('Бла бла бла ','ComboBox2',ComboBox2.Items.Text);, но ничего не грузится
Ответить с цитированием
  #7  
Старый 09.01.2011, 17:34
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Внимательнее читайте как правильно использовать ReadString
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #8  
Старый 09.01.2011, 18:41
Михалыч Михалыч вне форума
Начинающий
 
Регистрация: 08.09.2008
Сообщения: 142
Репутация: 15
По умолчанию

Цитата:
Сообщение от Страдалецъ
Внимательнее читайте как правильно использовать ReadString

Можно на примере? ??
Ответить с цитированием
  #9  
Старый 09.01.2011, 19:18
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Код:
ComboBox2.Items.Text:=Ini.ReadString('Бла бла бла ','ComboBox2','Значение по умолчанию, если не задано в файле');
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #10  
Старый 09.01.2011, 19:39
Михалыч Михалыч вне форума
Начинающий
 
Регистрация: 08.09.2008
Сообщения: 142
Репутация: 15
По умолчанию

вот что написанов ini файле
[Исходные данные]
ComboBox1=1
2

ComboBox2=4
5
6

все равно не пойму как прогрузить в сомбобох
Ответить с цитированием
  #11  
Старый 09.01.2011, 20:39
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,088
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от Михалыч
вот что написанов ini файле
[Исходные данные]
ComboBox1=1
2

ComboBox2=4
5
6

все равно не пойму как прогрузить в сомбобох

Не получится у тебя так. Дело в том, что св-ве Text данные храняться с переврводами строк, а ini не поддерживает такую ситуацию. Тебе надо либо как-то обработать текст, что бы убрать переводы строк. Например, завернуть строку в Base64. Или придумать другой какой вариант.
Ответить с цитированием
  #12  
Старый 09.01.2011, 20:43
Аватар для deltas
deltas deltas вне форума
Новичок
 
Регистрация: 22.11.2010
Сообщения: 99
Репутация: 47
По умолчанию

Код:
procedure TForm1.Button2Click(Sender: TObject);
var i : integer;
begin
For i:=0 to ComboBox1.Items.Count do begin
 AppIni.WriteString('Combo1',IntToStr(ComboBox1.ItemIndex),ComboBox1.Items[ComboBox1.ItemIndex]);
ComboBox1.ItemIndex:=ComboBox1.ItemIndex+1;
 end;
end;

Вот так можешь сохранять в файл...
Ответить с цитированием
  #13  
Старый 10.01.2011, 01:16
Михалыч Михалыч вне форума
Начинающий
 
Регистрация: 08.09.2008
Сообщения: 142
Репутация: 15
По умолчанию

Цитата:
Сообщение от deltas
Код:
procedure TForm1.Button2Click(Sender: TObject);
var i : integer;
begin
For i:=0 to ComboBox1.Items.Count do begin
 AppIni.WriteString('Combo1',IntToStr(ComboBox1.ItemIndex),ComboBox1.Items[ComboBox1.ItemIndex]);
ComboBox1.ItemIndex:=ComboBox1.ItemIndex+1;
 end;
end;

Вот так можешь сохранять в файл...

Сохранение работает. Помогите с загрузкой из файла.
Ответить с цитированием
  #14  
Старый 10.01.2011, 02:46
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Можно делать несколько иначе:
Запись:
Код:
Ini.WriteString('Исходные данные','ComboBox1',RepaceString(ComboBox1.Items.Text,#13#10,'|',[rfReplaceAll]));
Чтение:
Код:
ComboBox1.Items.Text := RepaceString(Ini.ReadString('Исходные данные','ComboBox1'),'|',#13#10,[rfReplaceAll]));
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #15  
Старый 10.01.2011, 18:45
Михалыч Михалыч вне форума
Начинающий
 
Регистрация: 08.09.2008
Сообщения: 142
Репутация: 15
По умолчанию

Цитата:
Сообщение от Страдалецъ
Можно делать несколько иначе:
Запись:
Код:
Ini.WriteString('Исходные данные','ComboBox1',RepaceString(ComboBox1.Items.Text,#13#10,'|',[rfReplaceAll]));
Чтение:
Код:
ComboBox1.Items.Text := RepaceString(Ini.ReadString('Исходные данные','ComboBox1'),'|',#13#10,[rfReplaceAll]));


На RepaceString ругается. В Uses может нужно прописать что?
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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