Что нового

[Данные, строки] считать файл и вывести сумму

tenitii

Новичок
Сообщения
26
Репутация
0
помогите нужно считать файл и вывести в окне только сумму
файл выглядит примерно так

001 OPERATOR 000000000123560
002 OPERATOR 000000000009685
003 OPERATOR 000000000000874

TOTAL : 1341,19
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Попробуйте так:
Код:
$f = FileOpen("file.txt",0)
Dim $iSum
While 1
	$iNum = FileReadLine($f)
    If @error = -1 Then ExitLoop
	$iNum = StringRight($iNum, 15 )
	$iSum += Int($iNum)
Wend
    MsgBox(0, "Сумма:", $iSum)
FileClose($f)
 
Автор
T

tenitii

Новичок
Сообщения
26
Репутация
0
работает отлично только я ошибся в примере так как строчка имеет продолжение с другими цифрами
а скрипт и их суммирует
можно ето исправить ?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
tenitii сказал(а):
работает отлично только я ошибся в примере так как строчка имеет продолжение с другими цифрами
а скрипт и их суммирует
можно ето исправить ?
Вы напишите полностью пример, и укажите (выделите), что нужно суммировать!

Я понял, что вам нужно суммировать выделенное красным:

001 OPERATOR 000000000123560 034398734837434
002 OPERATOR 000000000009685 034398734837434
003 OPERATOR 000000000000874 034398734837434


Так?
Приведите полный пример строки в файле!
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Попробуйте так:
Код:
$f = FileOpen("file.txt",0)
Dim $iSum
While 1
	$iNum = FileReadLine($f)
    If @error = -1 Then ExitLoop
	$iNum =	StringTrimLeft(StringStripWS($iNum,8),11)
	$iNum = StringLeft($iNum,15)
	$iSum += Int($iNum)
Wend
    MsgBox(0, "Сумма:",$iSum)
FileClose($f)
 
Автор
T

tenitii

Новичок
Сообщения
26
Репутация
0
+000003+0100615+0000133831+000000+0000000+0000000000+000003+0100615+0000123934
+000000+0000078+0000138493+000000+0000000+0000000000+000002+0000002+0000080000
+000000+0000074+0000126478+000000+0000000+0000000000+000002+0000002+0000080000
+000000+0000000+0000000000+000000+0000000+0000000000+000000+0000000+0000000000
+000000+0000000+0000000000+000000+0000000+0000000000+000000+0000000+0000000000
+000000+0000000+0000000000+000000+0000000+0000000000+000000+0000000+0000000000
+000000+0000004+0000012015+000000+0000000+0000000000+000000+0000000+0000000000
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
tenitii, нужно было с самого начала показать правильную структуру файла?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
tenitii сказал(а):
+000003+0100615+0000133831+000000+0000000+0000000000+000003+0100615+0000123934
+000000+0000078+0000138493+000000+0000000+0000000000+000002+0000002+0000080000
+000000+0000074+0000126478+000000+0000000+0000000000+000002+0000002+0000080000
+000000+0000000+0000000000+000000+0000000+0000000000+000000+0000000+0000000000
+000000+0000000+0000000000+000000+0000000+0000000000+000000+0000000+0000000000
+000000+0000000+0000000000+000000+0000000+0000000000+000000+0000000+0000000000
+000000+0000004+0000012015+000000+0000000+0000000000+000000+0000000+0000000000
Человеки!!!! Ну почему когда задаётся вопрос, то с примером всегда проблема ;D
Ну разве нельзя сразу привести формат файла из которого читается информация, таким, каким он должен быть??? :smile:
Код:
$f = FileOpen("file.txt",0)
Dim $iSum
While 1
	$iNum = FileReadLine($f)
    If @error = -1 Then ExitLoop
	$iNum =	StringTrimLeft($iNum,16)
	$iNum = StringLeft($iNum,15)
	$iSum += Int($iNum)
Wend
    MsgBox(0, "Сумма:",$iSum)
FileClose($f)
 
Верх