Текущий архив: 2003.02.17;
Скачать: CL | DM;
ВнизСуммирование чисел в файле Найти похожие ветки
← →
Gennadiy (2003-02-06 18:46) [0]Уважаемые мастера!!! Помогите пожалуйста у меня такая проблема,есть текстовый файл в котором в столбик забиты целые числа, и нужно сделать программу, что бы она суммировала эти числа в файле, и результат выводила в label. Я не знаю как исправить код в цикле, чтобы программа правильно считала:
procedure TForm1.Button1Click(Sender: TObject);
var
F:TextFile;
Stroka:String;
Summa:Integer;
begin
AssignFile(F,"summa.txt");
Reset(F);
while not Eof(F) do
begin
ReadLn(F,Stroka);
Summa:=StrToInt(Stroka);
Summa:=Summa+Summa;
Label1.Caption:=Stroka;
Label2.Caption:=IntToStr(Summa);
end;
CloseFile(F);
end;
← →
Hint (2003-02-06 18:51) [1]Хех... Бывает...
Вы этот цикл хотя бы на бумажке распишите, посмотрите, что каждый раз с переменными происходит...
А если думать не хотца, то сделайте следующее:
2 строки
Summa:=StrToInt(Stroka);
Summa:=Summa+Summa;
поменяйте на
Summa:=Summa+StrToInt(Stroka)
← →
OxOTHuK (2003-02-06 18:57) [2]procedure TForm1.Button1Click(Sender: TObject);
var
F:Textfile;
Stroka:String;
summa:Integer;
begin
summa:=0;
AssignFile(F,"summa.txt");
Reset(F);
while not Eof(F) do
begin
ReadLn(F,Stroka);
inc(Summa,StrToInt(Stroka));
Label1.Caption:=Stroka;
Label2.Caption:=IntToStr(Summa);
end;
CloseFile(F);
end;
gl
← →
Романов Р.В. (2003-02-06 18:59) [3]Будет работать пока в файле не встретится буква :)
← →
OxOTHuK (2003-02-07 00:12) [4]>> Романов
Это точно, но стояла задача суммирования, а не обработки Ексепшинов... ;)
← →
Anatoly Podgoretsky (2003-02-07 00:21) [5]Есть вопросы.
1. Зачем читать в строку, лучше сразу в Integer
Readln(f,IntVar)
2. Зачем выводить Label1.Caption если значения будут видны только после окончания цикла
3. Нигде не видно защиты от ошибок
← →
Юрий Зотов (2003-02-07 00:21) [6]Я в шоке. Читать числа в строковом виде, чтобы тут же переводить их снова в числа. А что, ReadLn уже не может СРАЗУ читать числа?
← →
Tux (2003-02-07 00:28) [7]А я бы еще посоветовал ODBC драйвер для текстовых файлов пришить, подконнекчиваться через ADOQuery посредством OLEDB провайдера для ODBC драйвероа, геморрой, на первый взгляд, зато какой триумф высочайших технологий:
SELECT SUM(ID) FORM TABLE.TXT
!
← →
OxOTHuK (2003-02-07 07:30) [8]>> Ю. Зотов & Anatoly Podgoretsky ... Спаcибо за критику - обязательно приму к сведению... просто как то позабыл про
Readln(f,IntVar)
Страницы: 1 вся ветка
Текущий архив: 2003.02.17;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.011 c