Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.15;
Скачать: CL | DM;

Вниз

Строчки   Найти похожие ветки 

 
klochkov   (2002-07-03 16:49) [0]

Уважаемые мастера, кто поможет решить проблему.
Существет файл test.txt в нем существует сторка вида:

1 0 0 456 0 31
Как можно посчитать сумму цифр.


 
Виктор Щербаков ©   (2002-07-03 16:51) [1]

Цифр или чисел?


 
klochkov   (2002-07-03 16:52) [2]

sorry, чисел.


 
Skier ©   (2002-07-03 16:52) [3]

>klochkov
-Разбираешь строку и записываешь значения в TStringList
-Дальше суммируешь через StrToInt()


 
klochkov   (2002-07-03 16:53) [4]

Можно с примером, если не сложно.


 
alexdbases ©   (2002-07-03 16:54) [5]

Если заранее известно что всё они циферки....то
От пробела да пробела цифра....
Переводишь эту строку в какой-нить double и складываешь....
Если от пробела до пробела разница один то пропускаешь....
Так до конца файла


 
Alx2 ©   (2002-07-03 16:59) [6]

Var F : System.Text;
V, S : Integer;
begin
AssignFile(F,filename);
ReSet(F);
S := 0;
while not eof(f) do
begin
read(f,V);
inc(S,V);
end;
closeFile(F);
S - сумма
end.


 
alexdbases ©   (2002-07-03 17:04) [7]

А если это не текстовый файл? (to Alx2)
и заносились туда строки а не так - Write(F,I) где i -инежер...
Что тогда?


 
klochkov   (2002-07-03 17:10) [8]

Извените, уточняю задачу.
Файл текстовой. Помимо чисел есть текст ( шапка и хвост).
нужно сложить все числа в строке и передать в качестве параметра программе дальше.


 
Alx2 ©   (2002-07-03 17:11) [9]

>alexdbases © (03.07.02 17:04)
>А если это не текстовый файл? (to Alx2)
Но ведь есть же приведенный автором пример содержимого файла.

А так получится, что пишем сумматор для произвольных форматов файлов. Вдруг он в формате Excel?

>и заносились туда строки а не так - Write(F,I)
>где i -инежер...
Пофигу как заносилось. Лишь бы разделители-пробелы либо возвраты каретки были.


 
alexdbases ©   (2002-07-03 17:13) [10]

Если произошол сбой в
var h:float;
try
h:=StrToFloat(str(из файла между пробелами));
Exept
Showmessage("Это на цифру не похожа");
finally
ect///


 
Alx2 ©   (2002-07-03 17:15) [11]

>klochkov (03.07.02 17:10)
Тогда мой вариант без переделок не покатит: надо проматывать шапку и не читать хвост :)


 
alexdbases ©   (2002-07-03 17:17) [12]

а если втретиться такое 6 4 76 5н567 546
Тогды чё?
А читать можно из екселя...


 
Fenix ©   (2002-07-03 17:17) [13]

Вобще обыявляешь

var
ifile: file of integer;

и читаешь из него, вот и все дела!










 
klochkov   (2002-07-03 17:19) [14]

В файле только цыфры м пробелы.
Сложить нужно одну строчку, а потом другую и т.д
до EOF


 
Alx2 ©   (2002-07-03 17:19) [15]

>alexdbases © (03.07.02 17:17)
Но не из всего-же сразу читать?!


 
Alx2 ©   (2002-07-03 17:22) [16]

>klochkov (03.07.02 17:19)
Если другого текста нет, то см. мой вариант.
>Fenix © (03.07.02 17:17)
Читать-то будет, но только мусор сплошной. Файл-то не бинарный.


 
alexdbases ©   (2002-07-03 17:23) [17]

почему если надо в файле отобрать все цифры.....почему нет?!


 
Alx2 ©   (2002-07-03 17:26) [18]

>alexdbases © (03.07.02 17:23)
А, вон ты про что! Я-то подумал, что намекаешь на произвольные форматы файлов.
Тогда конечно. Правда, если задача так стоит. Но в этом случае - проще.


 
Fenix ©   (2002-07-03 17:35) [19]

Тогда читаешь полностью строку в Mystring типа string и
ListBox1.Items.CommaText(Mystring);
А дальше работаешь с итемсами и т.д.


 
klochkov   (2002-07-03 17:53) [20]

Большое спасибо всем, буду пытаться


 
3S   (2002-07-03 20:03) [21]

Воспользуйся библиотекой Rxlib
В StrUtils есть функции
WordCount
ExtractWord
Пример:

var t: Textfile;
s, s1: String;
i: Integer;
f, sum: Double; //Можно интегер


begin
//Как файл открыть сам знаешь
sum:=0;
Readln(t, s);
if WordCount(s)>0 then
for i:=1 to WordCount(s) do begin
try
s1:=ExtractWord(i, s, [" "]); // Разделитель между словами я поставил пробел
f:=StrToFloat(s1); //если итеген то StrToInt
sum:=sum+f;
except
//можно написать sum:=sum+0;
end;
end;
//sum - это твоя сумма
end;


//Писал на память поэтому мог ошибиться где-нибудь давно это было, пробуй
Удачи!!!



 
klochkov   (2002-07-03 23:06) [22]

Спасибо!



Страницы: 1 вся ветка

Текущий архив: 2002.07.15;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.015 c
1-47473
Dmitry V. Averuanov
2002-07-01 12:52
2002.07.15
Нужно сделать рамку с ПЛАВНО ! меняющимся цветом


4-47902
whc
2002-05-15 17:45
2002.07.15
Соответствие пароля и логина в NT


6-47664
LiNkS
2002-04-27 17:56
2002.07.15
WinAPI для сканнера портов.


1-47248
BlackSun
2002-06-29 00:53
2002.07.15
Как послать событие, что нажата кнопка мыши?


6-47624
Konsul
2002-04-28 14:20
2002.07.15
Звук через локальную сеть