Что нового

Добавить еще колонку с результатами

maes_tro

Новичок
Сообщения
38
Репутация
0
Добрый день!

Как добавить еще такую же колонку с результатом справа (см вложение) и можно ли чтоб в конце кажлой колонки было итого (общая сумма всех строк)?
Код:
#include <array.au3>

Opt("TrayIconHide", 0)
Opt("TrayIconDebug", 1)

$zaglav = "Счетчик - калькулятор"


$filename = FileOpenDialog($zaglav, @ScriptDir, "TXT (*.txt)", 1 + 4)
Global $Drawing = '***Чертеж простая***' ;Рисунок из 7 колонки по которому выполнять поиск
Global $n = 0
Dim $aResult[0]

If @error Then
    MsgBox(4096, "", "The End")
Else

	If StringInStr($filename, '|') Then;если выбрано несколько файлов
        $aListFile = StringSplit($filename, '|')
        $Folder = $aListFile[1]
        For $i = 2 To $aListFile[0]
            $sFullPath = $Folder & '\' & $aListFile[$i]
            _Count($sFullPath)
        Next

   Else ;если выбран один файл
        _Count($filename)
    EndIf


    _ArrayDisplay($aResult)
EndIf

Func _Count($Path)

    $aFile = FileReadToArray($Path)

    For $i = 0 To UBound($aFile) - 1
        If StringStripWS($aFile[$i], 8) Then;Исключаем пустые строки
            $aLine = StringSplit($aFile[$i], ';')

			If $aLine[7] = $Drawing Then;Выбор только по заданному рисунку
                $n += 1
                ReDim $aResult[$n]
                $aResult[$n - 1] = (($aLine[3]/1000) * ($aLine[4]/1000))*$aLine[5]
            EndIf

			

		EndIf
    Next

EndFunc   ;==>_Count
 

Вложения

  • колонка.jpg
    колонка.jpg
    56.8 КБ · Просмотры: 8
  • конвертируемый.txt
    145 байт · Просмотры: 3

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Можно так:
Код:
#include <array.au3>

Opt("TrayIconHide", 0)
Opt("TrayIconDebug", 1)

$zaglav = "Счетчик - калькулятор"

Global $Drawing = 'Чертеж' ;Рисунок из 7 колонки по которому выполнять поиск
Global $n = 0
Global $iTotal = 0
Dim $aResult[0][2]

$filename = FileOpenDialog($zaglav, @ScriptDir, "TXT (*.txt)", 1 + 4)
If @error Then
	MsgBox(4096, "", "The End")
Else

	If StringInStr($filename, '|') Then;если выбрано несколько файлов
		$aListFile = StringSplit($filename, '|')
		$Folder = $aListFile[1]
		For $i = 2 To $aListFile[0]
			$sFullPath = $Folder & '\' & $aListFile[$i]
			$iTotal += _Count($sFullPath)
		Next
		ReDim $aResult[$n + 1][2]
		$aResult[$n][0] = 'Итого ' & $iTotal
	Else ;если выбран один файл
		$iTotal = _Count($filename)
		ReDim $aResult[$n + 1][2]
		$aResult[$n][0] = 'Итого ' & $iTotal
	EndIf


	_ArrayDisplay($aResult)
EndIf

Func _Count($Path)
	Local $iFileTotal = 0
	$aFile = FileReadToArray($Path)
	For $i = 0 To UBound($aFile) - 1
		If StringStripWS($aFile[$i], 8) Then;Исключаем пустые строки
			$aLine = StringSplit($aFile[$i], ';')
			If StringStripWS($aLine[7],1+2) = $Drawing Then;Выбор только по заданному рисунку
				$n += 1
				ReDim $aResult[$n][2]
				$aResult[$n - 1][0] = (($aLine[3] / 1000) * ($aLine[4] / 1000)) * $aLine[5]
				$iFileTotal += $aResult[$n - 1][0]
			EndIf

		EndIf
	Next
	Return $iFileTotal
EndFunc   ;==>_Count
Только не понял, что во вторую колонку писать.
 
Автор
M

maes_tro

Новичок
Сообщения
38
Репутация
0
ra4o сказал(а):
Можно так:
Код:
#include <array.au3>

Opt("TrayIconHide", 0)
Opt("TrayIconDebug", 1)

$zaglav = "Счетчик - калькулятор"

Global $Drawing = 'Чертеж' ;Рисунок из 7 колонки по которому выполнять поиск
Global $n = 0
Global $iTotal = 0
Dim $aResult[0][2]

$filename = FileOpenDialog($zaglav, @ScriptDir, "TXT (*.txt)", 1 + 4)
If @error Then
	MsgBox(4096, "", "The End")
Else

	If StringInStr($filename, '|') Then;если выбрано несколько файлов
		$aListFile = StringSplit($filename, '|')
		$Folder = $aListFile[1]
		For $i = 2 To $aListFile[0]
			$sFullPath = $Folder & '\' & $aListFile[$i]
			$iTotal += _Count($sFullPath)
		Next
		ReDim $aResult[$n + 1][2]
		$aResult[$n][0] = 'Итого ' & $iTotal
	Else ;если выбран один файл
		$iTotal = _Count($filename)
		ReDim $aResult[$n + 1][2]
		$aResult[$n][0] = 'Итого ' & $iTotal
	EndIf


	_ArrayDisplay($aResult)
EndIf

Func _Count($Path)
	Local $iFileTotal = 0
	$aFile = FileReadToArray($Path)
	For $i = 0 To UBound($aFile) - 1
		If StringStripWS($aFile[$i], 8) Then;Исключаем пустые строки
			$aLine = StringSplit($aFile[$i], ';')
			If StringStripWS($aLine[7],1+2) = $Drawing Then;Выбор только по заданному рисунку
				$n += 1
				ReDim $aResult[$n][2]
				$aResult[$n - 1][0] = (($aLine[3] / 1000) * ($aLine[4] / 1000)) * $aLine[5]
				$iFileTotal += $aResult[$n - 1][0]
			EndIf

		EndIf
	Next
	Return $iFileTotal
EndFunc   ;==>_Count
Только не понял, что во вторую колонку писать.

первая колонка - номер строки, вторая колонка - это результаты умножения 3 и 4 столбца, третья колонка - результат умножения 3 и 4 стобца , но! в 3 столбце отображать в строке результат только там где есть в седьмом столбце Чертеж. и в итоге (после каждого столбца)чтоб отображался общий результат (сумма каждого столбца)
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Теперь понятно,сейчас всё переделаю...
Так ?
Код:
#include <array.au3>

Opt("TrayIconHide", 0)
Opt("TrayIconDebug", 1)

$zaglav = "Счетчик - калькулятор"

Global $Drawing = 'Чертеж' ;Рисунок из 7 колонки по которому выполнять поиск
Global $n = 0
Global $iTotal1 = 0
Global $iTotal2 = 0
Dim $aResult[0][3]

$filename = FileOpenDialog($zaglav, @ScriptDir, "TXT (*.txt)", 1 + 4)
If @error Then
	MsgBox(4096, "", "The End")
Else

	If StringInStr($filename, '|') Then;если выбрано несколько файлов
		$aListFile = StringSplit($filename, '|')
		$Folder = $aListFile[1]
		For $i = 2 To $aListFile[0]
			$sFullPath = $Folder & '\' & $aListFile[$i]
			_Count($sFullPath)
		Next
	Else ;если выбран один файл
		_Count($filename)
	EndIf
	ReDim $aResult[$n + 1][3]
	$aResult[$n][0] = 'Итого'
	$aResult[$n][1] = $iTotal1
	$aResult[$n][2] = $iTotal2

	_ArrayDisplay($aResult)
EndIf

Func _Count($Path)

	$aFile = FileReadToArray($Path)
	For $i = 0 To UBound($aFile) - 1
		If StringStripWS($aFile[$i], 8) Then;Исключаем пустые строки
			$aLine = StringSplit($aFile[$i], ';')
			$n += 1
			ReDim $aResult[$n][3]
			$aResult[$n - 1][0] = $n
			$aResult[$n - 1][1] = (($aLine[3] / 1000) * ($aLine[4] / 1000)) * $aLine[5]
			If StringStripWS($aLine[7], 1 + 2) = $Drawing Then $aResult[$n - 1][2] = (($aLine[3] / 1000) * ($aLine[4] / 1000)) * $aLine[5];Выбор только по заданному рисунку
			$iTotal1 += $aResult[$n - 1][1]
			$iTotal2 += $aResult[$n - 1][2]
		EndIf
	Next

EndFunc   ;==>_Count
 
Автор
M

maes_tro

Новичок
Сообщения
38
Репутация
0
ra4o сказал(а):
Теперь понятно,сейчас всё переделаю...
Так ?
Код:
#include <array.au3>

Opt("TrayIconHide", 0)
Opt("TrayIconDebug", 1)

$zaglav = "Счетчик - калькулятор"

Global $Drawing = 'Чертеж' ;Рисунок из 7 колонки по которому выполнять поиск
Global $n = 0
Global $iTotal1 = 0
Global $iTotal2 = 0
Dim $aResult[0][3]

$filename = FileOpenDialog($zaglav, @ScriptDir, "TXT (*.txt)", 1 + 4)
If @error Then
	MsgBox(4096, "", "The End")
Else

	If StringInStr($filename, '|') Then;если выбрано несколько файлов
		$aListFile = StringSplit($filename, '|')
		$Folder = $aListFile[1]
		For $i = 2 To $aListFile[0]
			$sFullPath = $Folder & '\' & $aListFile[$i]
			_Count($sFullPath)
		Next
	Else ;если выбран один файл
		_Count($filename)
	EndIf
	ReDim $aResult[$n + 1][3]
	$aResult[$n][0] = 'Итого'
	$aResult[$n][1] = $iTotal1
	$aResult[$n][2] = $iTotal2

	_ArrayDisplay($aResult)
EndIf

Func _Count($Path)

	$aFile = FileReadToArray($Path)
	For $i = 0 To UBound($aFile) - 1
		If StringStripWS($aFile[$i], 8) Then;Исключаем пустые строки
			$aLine = StringSplit($aFile[$i], ';')
			$n += 1
			ReDim $aResult[$n][3]
			$aResult[$n - 1][0] = $n
			$aResult[$n - 1][1] = (($aLine[3] / 1000) * ($aLine[4] / 1000)) * $aLine[5]
			If StringStripWS($aLine[7], 1 + 2) = $Drawing Then $aResult[$n - 1][2] = (($aLine[3] / 1000) * ($aLine[4] / 1000)) * $aLine[5];Выбор только по заданному рисунку
			$iTotal1 += $aResult[$n - 1][1]
			$iTotal2 += $aResult[$n - 1][2]
		EndIf
	Next

EndFunc   ;==>_Count

Все СУПЕР! Вы ГЕНИЙ) спасибо с меня + + + + + +
 
Верх