Главная страница
    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.48 MB
Время: 0.01 c
3-47214
Miss
2002-06-19 16:53
2002.07.15
Перенос данных в другую таблицу


1-47570
AlexanderSK
2002-06-27 12:39
2002.07.15
TBDEClientDataSet в Delphi6


1-47334
MaximatorVeter
2002-06-12 22:47
2002.07.15
Time Stamp


3-47124
Ramil
2002-06-21 21:09
2002.07.15
У кого получался сетевой IB под win95/98


1-47350
Mike N. Radoman
2002-07-01 17:51
2002.07.15
Как получить разрешение принтера?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский