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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.09.2010, 22:35   #1
1o1man
Пользователь
 
Регистрация: 09.12.2007
Сообщений: 49
По умолчанию работа с txt/ini в delphi

есть программа для расчета площадей. надо сделать чтобы сбоку видимо в TEdit или типа того после расчета добавлялся свежий результат и сохранялся. и чтобы предыдущие результаты тоже отображались. построчно.
как это сделать?
посмотрел как сохранять размеры формы и переменные, ну и восстанавливать их, а как вот в отдельную штуку добавлять сообразить не могу.
Цитата:
IniFile.WriteInteger('MainForm','Ma inFormHeight',MainForm.Height);
IniFile.WriteInteger('MainForm','Ma inFormWidth',MainForm.Width);
IniFile.WriteFloat('MainForm','wiri na',a);
IniFile.WriteFloat('MainForm','viso ta',b);

переменные надо взять из процедуры, которая считает все это

ща разберусь с http://www.delphisources.ru/pages/fa...log_files.html

Последний раз редактировалось 1o1man; 23.09.2010 в 12:53.
1o1man вне форума Ответить с цитированием
Старый 25.09.2010, 23:50   #2
1o1man
Пользователь
 
Регистрация: 09.12.2007
Сообщений: 49
По умолчанию

взял процедуры из http://www.delphisources.ru/pages/fa...log_files.html
Цитата:
procedure AddLog(LogString: string; LogFileName: string);
procedure GetLog(Count: integer; Strings: TStrings; LogFileName: string);


Пример использования:

procedure TForm1.Button1Click(Sender: TObject);
begin
AddLog(Edit1.Text,LogFileName);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ListBox1.Items.Clear;
GetLog(50, ListBox1.Items,LogFileName);
end;

присваиваю LogFileName какое-нить значение строковое, пишет эррор, добавляю параметр LogFileName в процедуру, пишет эррор, без него пишет не хватает параметров. что делать?

Последний раз редактировалось 1o1man; 26.09.2010 в 00:30.
1o1man вне форума Ответить с цитированием
Старый 26.09.2010, 00:24   #3
XeruH
Форумчанин
 
Регистрация: 17.09.2010
Сообщений: 229
По умолчанию

Телепаты все в отпуске! Поэтому пиши что за еррор он тебе пишет.
Правильно заданный вопрос - половина ответа!
XeruH вне форума Ответить с цитированием
Старый 26.09.2010, 00:35   #4
1o1man
Пользователь
 
Регистрация: 09.12.2007
Сообщений: 49
По умолчанию

покопался еще, все сделал )
блин не помню одну штуку, надо скажем первые 10 знаков брать из edit1.text
как сделать?
Цитата:
var
str: String;
begin
str:='Delphi Studio';
SetLength(str, 6);
ShowMessage(str); результат: Delphi
tak? чето не пашет ( как исправить?

Цитата:
edit4.Text:=floattostr(plowad*resul t/100); //имеют значения в процессе выполнения процедуры
edit14.text:=floattostr(aa*bb); //имеют значения в процессе выполнения процедуры
....
asd.text:= 'S пятна: ' + SetLength(edit14.text,9)+ ' кв.см' + ', S черного цвета ' + SetLength(edit4.text,9)+ ' кв.см' ;
ошибка такая [Pascal Error] MainUnit.pas(303): E2197 Constant object cannot be passed as var parameter

Последний раз редактировалось 1o1man; 26.09.2010 в 01:04.
1o1man вне форума Ответить с цитированием
Старый 26.09.2010, 02:34   #5
XeruH
Форумчанин
 
Регистрация: 17.09.2010
Сообщений: 229
По умолчанию

Цитата:
Сообщение от 1o1man Посмотреть сообщение
покопался еще, все сделал )
блин не помню одну штуку, надо скажем первые 10 знаков брать из edit1.text
как сделать?
использовать функцию copy
Код:
copy(edit1.text, 1, 10);
Цитата:
Сообщение от 1o1man Посмотреть сообщение
ошибка такая [Pascal Error] MainUnit.pas(303): E2197 Constant object cannot be passed as var parameter
Значит что ты передаешь константу а в функции/процедуре в этом месте должен идти var параметр
Правильно заданный вопрос - половина ответа!
XeruH вне форума Ответить с цитированием
Старый 26.09.2010, 03:05   #6
1o1man
Пользователь
 
Регистрация: 09.12.2007
Сообщений: 49
По умолчанию

Цитата:
Сообщение от XeruH Посмотреть сообщение
использовать функцию copy
Код:
copy(edit1.text, 1, 10);
Код:
[Pascal Error] MainUnit.pas(305): E2066 Missing operator or semicolon
[Pascal Error] MainUnit.pas(305): E2010 Incompatible types: 'string' and 'TMenuItem'
ругается на copy(edit14.text, 1, 10)
1o1man вне форума Ответить с цитированием
Старый 26.09.2010, 03:13   #7
XeruH
Форумчанин
 
Регистрация: 17.09.2010
Сообщений: 229
По умолчанию

точку с запятой не забыл нигде?
Правильно заданный вопрос - половина ответа!
XeruH вне форума Ответить с цитированием
Старый 26.09.2010, 03:24   #8
1o1man
Пользователь
 
Регистрация: 09.12.2007
Сообщений: 49
По умолчанию

нет, не забыл
Цитата:
edit9.Text:=floattostr(ymax);
edit10.Text:=floattostr(a);
edit11.Text:=floattostr(b);
edit12.Text:=floattostr(aa);
edit13.Text:=floattostr(bb);
edit14.text:=floattostr(aa*bb);
writeparams;
LogFileName:='Log.log';
asd.text:= 'S пятна: ' + copy(edit14.text, 1, 10) + ' кв.см' + ', S черного цвета ' +copy(edit4.text, 1, 10) + ' кв.см' ;
AddLog(asd.text,LogFileName);
ListBox1.Items.Clear;
GetLog(99, ListBox1.Items,LogFileName);

end;
copy(edit14.text, 1, 10) - возвращает тоже string же? если я вместо copy(edit14.text, 1, 10) оставляю просто edit14.text - то прога работает, но в этом поле более 20 знаков, что нафиг не нужно
////////////
up

всё, хз почему,но заново запустив и изменив на copy(edit14.text, 1, 10) все заработало. тема закрыта

Последний раз редактировалось 1o1man; 26.09.2010 в 16:53.
1o1man вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
импорт из txt, работа с массивом данных, экспорт в txt Danara Microsoft Office Excel 4 31.03.2010 00:26
Работа с Ini Rebel123 Общие вопросы Delphi 3 17.09.2009 12:59
работа с ini фалами Llirik1984 Win Api 2 28.03.2009 16:15
Вывод некоторых параметров из *.ini (или *.txt) файлов в поля Label grey Помощь студентам 11 14.02.2009 10:58
Работа с .ini (Delphi) Нужна помощь. -=MaX-XaM=- Помощь студентам 3 27.01.2009 17:07