Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Строчки [D6, Win95/98]


Страницы:   1 2

klochkov ©   (2002-07-03 16:49:00) 

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

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


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

Спасибо!


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

Воспользуйся библиотекой 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 17:53:00) [3]

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


Fenix   (2002-07-03 17:35:00) [4]

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


Alx2   (2002-07-03 17:26:00) [5]

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


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

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


Alx2   (2002-07-03 17:22:00) [7]

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


Alx2   (2002-07-03 17:19:00) [8]

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


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

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


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

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


Fenix   (2002-07-03 17:17:00) [11]

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

var
ifile: file of integer;

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









Alx2   (2002-07-03 17:15:00) [12]

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


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

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


Alx2   (2002-07-03 17:11:00) [14]

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

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

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


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

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


alexdbases   (2002-07-03 17:04:00) [16]

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


Alx2   (2002-07-03 16:59:00) [17]

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 16:54:00) [18]

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


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

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


Skier   (2002-07-03 16:52:00) [20]

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо