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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2010, 15:30   #1
Devostator
Пользователь
 
Регистрация: 05.02.2010
Сообщений: 45
По умолчанию запись данных в файл из 10 штук TEdit'ов

Допустим есть на форме 10 штук TEdit.
Я проверяю их содержимое вот так:
Код:
for i:=0 to Form1.ComponentCount-1 do
if (Form1.Components[i] is TEdit) and (TEdit(Form1.Components[i]).text<>'') then begin
file.add(TEdit(Form1.Components[i]).text);
TEdit(Form1.Components[i]).clear;
end;
Но почему-то данные с TEdit'ов не сохраняются..

Прошу помощи=)
Devostator вне форума Ответить с цитированием
Старый 03.10.2010, 16:18   #2
ZvEr_HaCkEr
VisualC++/DirectX
Форумчанин
 
Аватар для ZvEr_HaCkEr
 
Регистрация: 16.07.2010
Сообщений: 831
По умолчанию

А как насчет если так попробывать?
Код:
procedure TForm4.Button1Click(Sender: TObject);
 var
ini:tinifile;
i:integer;
begin
ini:=tinifile.Create(extractfilepath(paramstr(0))+'Config.ini');
try
  for I := 0 to ComponentCount-1 do
  if Components[i] is TEdit then

ini.WriteString('Text',TEdit(Components[i]).Name,TEdit(Components[i]).Text);
finally
ini.Free;
end;

end;
Uses IniFiles;
ZvEr_HaCkEr вне форума Ответить с цитированием
Старый 03.10.2010, 17:22   #3
Devostator
Пользователь
 
Регистрация: 05.02.2010
Сообщений: 45
По умолчанию

Ну это в *.ini файлы сохраняет. А мне в простой *.txt надо.
Я хотел спросить, может я чего-нибудь не правильно делаю?
Devostator вне форума Ответить с цитированием
Старый 03.10.2010, 17:27   #4
MAZADA
Форумчанин
 
Регистрация: 11.09.2010
Сообщений: 103
По умолчанию

f: TextFile;
begin
AssignFile(f,'db.txt');
ReWrite(f);
Writeln(f,Edit2.Text,'',edit7.text, ' ',edit1.text);
MAZADA вне форума Ответить с цитированием
Старый 03.10.2010, 17:28   #5
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Код:
file.add(TEdit(Form1.Components[i]).text);
А енто что?

Я бы потоком (TStream) писал.
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 03.10.2010, 18:14   #6
ZvEr_HaCkEr
VisualC++/DirectX
Форумчанин
 
Аватар для ZvEr_HaCkEr
 
Регистрация: 16.07.2010
Сообщений: 831
По умолчанию

Цитата:
Сообщение от Devostator Посмотреть сообщение
Ну это в *.ini файлы сохраняет. А мне в простой *.txt надо.
Ну так кто мешает сделать
Код:
 ini:=tinifile.Create(extractfilepath(paramstr(0))+'Config.txt');
ZvEr_HaCkEr вне форума Ответить с цитированием
Старый 03.10.2010, 18:19   #7
Devostator
Пользователь
 
Регистрация: 05.02.2010
Сообщений: 45
По умолчанию

Цитата:
Сообщение от ex.cluz Посмотреть сообщение
Код:
file.add(TEdit(Form1.Components[i]).text);
А енто что?

Я бы потоком (TStream) писал.
Да я бы с удовольствием записал бы потоком, да только не осилил я:
file.write(Edit1.text, ????);
Вместо вопросов нужно писать кол-во байт отведенное для Edit1.... а я откуда знаю сколько пользователь напишет туда букв.
SizeOf(????) не канает почему-то.

Даже без If....then не работает:
Код:
for I := 0 to Form1.GB3.ComponentCount-1 do
begin
  f.Add('&'+TEdit(Form1.GB3.Components[i]).Text);
  TEdit(Form1.GB3.Components[i]).Clear;
end;
GB3 - это GroupBox. В самом GroupBox'e только Edit'ы.

Последний раз редактировалось Stilet; 03.10.2010 в 19:24.
Devostator вне форума Ответить с цитированием
Старый 03.10.2010, 19:27   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
var AFile:TStringList;
...
Afile:=TStringList.Create;
for i:=0 to Form1.ComponentCount-1 do begin
 if (Form1.Components[i] is TEdit) and (TEdit(Form1.Components[i]).text<>'') then begin
   afile.add(TEdit(Form1.Components[i]).text);
   TEdit(Form1.Components[i]).text:='';
 end;
end;
Afile.SaveToFile('c:\temp\Мой файл.txt');
Afile.Free;
...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.10.2010, 19:50   #9
Devostator
Пользователь
 
Регистрация: 05.02.2010
Сообщений: 45
По умолчанию

Так работает, но мне надо взять Edit'ы тока из определенного GroupBox'a.
Код:
for I := 0 to Form1.GB3.ComponentCount-1 do
Devostator вне форума Ответить с цитированием
Старый 03.10.2010, 20:04   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
Afile:=TStringList.Create;
with Form1.GroupBoxопределенный do 
 for i:=0 to ControlCount-1 do begin
  if (Controls[i] is TEdit) and (TEdit(Controls[i]).text<>'') then begin
   afile.add(TEdit(Controls[i]).text);
   TEdit(Controls[i]).text:='';
  end;
 end;
Afile.SaveToFile('c:\temp\Мой файл.txt');
Afile.Free;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись данных в файл Pti44ka Помощь студентам 5 10.12.2009 20:09
запись данных в файл Real Injenegr Помощь студентам 2 23.07.2009 03:21
Запись данных в файл balamut JavaScript, Ajax 1 29.05.2009 14:39
Запись данных в файл на С# fractal Помощь студентам 15 17.02.2009 22:14
запись данных в файл Артэс Общие вопросы C/C++ 13 09.06.2007 22:01