Форум: "Основная";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];
ВнизСтрочки Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.011 c