Что нового

Скрипт для вывода данных в таблицу

VermanVendetta13

Новичок
Сообщения
147
Репутация
0
Autoit: 3.3.14.1

Описание: Требуется скрипт который делал так, что бы в таблицу excel занеслись данные в том порядке как в MsgBox
но не все так просто, данные должны браться из FileList. То есть как лично я вижу это процесс. Чтение - ввод чтение -ввод. Может быть есть и попроще дела

Сам смысл заключается вот в чем, существует некое количество файлов txt, в которых записаны цифры 1,2 и 0 в рандомном порядке. Необходимо сделать так, что бы скрипт создавал таблицу в которую заносит уже посчитанные отдельно в каждом файле цифры.
Код подсчета есть в нароботках.

пример

файл 1 | цифра | цифра
файл 2 | цифра | цифра


Примечание: есть два кода

этот сделал я
Код:
#include <Array.au3>
#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <Word.au3>
#include <File.au3>
#include <Excel.au3>
$FileList=_FileListToArray(@DesktopDir&'\123', "*txt")
   $sText = FileRead($FileList)
   FileClose($FileList)


For $i = 1 To $FileList[0]
   StringReplace($sText, '1', '')
MsgBox(0,"" & $FileList[$i] & "" , @Extended)

StringReplace($sText, '2', '')
MsgBox(0, "" & $FileList[$i] & "", @Extended)
Next
$oExcel = _ExcelBookNew()
_ExcelBookSaveAs($oExcel, @TempDir & "\Temp.xls", "xls", 0, 1)
For $i = 1 To $FileList[0]

 StringReplace($sText, '1', '')

Local $aArray[5][3] = [["" & $FileList[$i] & "", @Extended ,@Extended],["" & $FileList[$i] & "",@Extended, @Extended],["" & $FileList[$i] & "", @Extended,@Extended],["" & $FileList[$i] & "" ,@Extended,@Extended],["" & $FileList[$i] & "" ,@Extended,@Extended]]
StringReplace($sText, '2', '')

_ExcelWriteSheetFromArray($oExcel, $aArray, 1, 1, 0, 0)



 StringReplace($sText, '2', '')
Local $aArray[5][4] = [["" & $FileList[$i] & "", @Extended],["" & $FileList[$i] & "", @Extended],["" & $FileList[$i] & "", @Extended],["" & $FileList[$i] & "" ,@Extended],["" & $FileList[$i] & "" ,@Extended]]
_ExcelWriteSheetFromArray($oExcel, $aArray, 6, 1, 0, 0)

MsgBox(0, "Выход", "Нажмите ОК что бы сохранить или крестик для выхода")
_ExcelBookSaveAs($oExcel, @TempDir & "\Temp.xls", "xls", 0, 1) 
_ExcelBookClose($oExcel)
Next


а этот помог сделать очень хороший человек с ником Каспер
Код:
#include <File.au3>
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <Word.au3>
#include <Excel.au3>

$FileList=_FileListToArray(@DesktopDir&'\123', "*txt")
If @error=4 Then
    MsgBox (0,"","Файлы/папки не найдены.")
    Exit
EndIf

For $i = 1 To $FileList[0]
$nFile = StringSplit($FileList[$i],'.')
$sFile = FileOpen(@DesktopDir&'\123\'&$FileList[$i], 0)
$sText = FileRead($sFile)
StringReplace($sText, '1', '')
$MsgBox = MsgBox(1, $FileList[$i],''&@CRLF&' Имя файла '&$nFile[1]&'  '&@CRLF&''&@CRLF&'Ответов с 1 баллом '&@CRLF&'    '&@extended&''&@CRLF&'')
StringReplace($sText, '2', '')
$MsgBox = MsgBox(1, $FileList[$i],''&@CRLF&' Имя файла '&$nFile[1]&'  '&@CRLF&''&@CRLF&'Ответов с 2 баллом '&@CRLF&'    '&@extended&'  '&@CRLF&'')
StringReplace($sText, '0', '')
$MsgBox = MsgBox(1, $FileList[$i],''&@CRLF&' Имя файла '&$nFile[1]&'  '&@CRLF&''&@CRLF&'Ответов с 0 баллом   '&@CRLF&'    '&@extended&'   '&@CRLF&'')
If $MsgBox = 2 Then ExitLoop
Next
;ВВЕРХУ ОБРАЗЕЦ ТОГО КАК ДОЖНО БЫТЬ ЗАПИСАНО
For $i = 1 To $FileList[0]
$nFile = StringSplit($FileList[$i],'.')
$sFile = FileOpen(@DesktopDir&'\123\'&$FileList[$i], 0)
$sText = FileRead($sFile)
Local $oExcel = _ExcelBookNew()


Local $aArray[6][3] = [["" & $FileList[$i] & "", @Extended , @Extended],["" & $FileList[$i] & "", @Extended , @Extended],["" & $FileList[$i] & "", @Extended , @Extended]]
_ExcelWriteSheetFromArray($oExcel, $aArray, 1, 1, 0, 0)
MsgBox(0, "Выход", "Нажмите ОК что бы сохранить или крестик для выхода")
_ExcelBookSaveAs($oExcel, @TempDir & "\Temp.xls", "xls", 0, 1)
_ExcelBookClose($oExcel)
Next

PS Для того что бы полноценно понять смысл нужно создать папку "123" или любую другую, там создать три txt файла в которых надо написать любые комбинации из цифр 1, 2 и 0. Пример: 111122200011202020

Если кто то знает как это занести в таблицу таким способ прошу откликнуться

заранее спасибо
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Автор
V

VermanVendetta13

Новичок
Сообщения
147
Репутация
0
Garrett сказал(а):
VermanVendetta13 [?]
Для того что бы полноценно понять смысл нужно
Грамотно составлять техническое задание!!!
окей

Описание:

Нужен скрипт, который смог бы перенести большое количество текстовых файлов таблицу excel.
Основная загвоздка состоит в том, что файлы txt содержат в себе набор определенных цифр (1,2 и 0). И эти цифры как таковые не нужны. Нужно их количество по отдельности.

Как можно видеть в первом посте, там есть небольшие наработки. Там так же есть конкретный скрипт для подсчета цифр из всех файлов заложенных в определенную папку

Мне же нужно следующее

1) имеется папка с N количеством файлов txt
2) скрипт читает все файлы по порядку и считает цифры отдельно для каждого файла

Пример:
файл 1
Drozdov.txt

Содержание файла: 102010202221110100001110111010101


Файл 2
Kirov.txt

Содержание файла: 222200001111100010100101110010101


Какой должен быть результат:

Rezultati.xls
____________________________________________________
Название | количество единиц | количество двоек | результат|
________|_________________|________________|_________|
Drozdov | 15 |. 5. |. 20. |
________|_________________|________________|_________|
Kirov. |. 14. |. 4. |. 18. |
________|_________________|________________|_________|


Надеюсь, что на сей раз описал максимально подробно
 

Kasper

Знающий
Сообщения
70
Репутация
8
Вот то что ты хотел с записью в Rezultati.xls так как у меня нету Ecxel'я
Код:
#include <File.au3>
#include <Array.au3>

$FileList=_FileListToArray(@DesktopDir&'\123', "*.para")
If @error=4 Then
    MsgBox (0,"","Файлы/папки не найдены.")
    Exit
EndIf
Dim $Array[$FileList[0]+1][4]
$Array[0][0] = "Название"
$Array[0][1] = "Количество единиц"
$Array[0][2] = "Количество двоек"
$Array[0][3] = "Результат"
_ArrayDisplay($FileList,"$FileList")
For $i = 1 To $FileList[0]
$nFile = StringSplit($FileList[$i],'.')
$sFile = FileOpen(@DesktopDir&'\123\'&$FileList[$i], 0)
$sText = FileRead($sFile)
StringReplace($sText, '1', '')
$one = @extended
StringReplace($sText, '2', '')
$two = @extended
$Rezultat = $one + $two
$Array[$i][0] = $nFile[1]
$Array[$i][1] = $one
$Array[$i][2] = $two
$Array[$i][3] = $Rezultat
Next

_ArrayDisplay($Array,"$Array")
 
Автор
V

VermanVendetta13

Новичок
Сообщения
147
Репутация
0
Kasper сказал(а):
Вот то что ты хотел с записью в Rezultati.xls так как у меня нету Ecxel'я
Код:
#include <File.au3>
#include <Array.au3>

$FileList=_FileListToArray(@DesktopDir&'\123', "*.para")
If @error=4 Then
    MsgBox (0,"","Файлы/папки не найдены.")
    Exit
EndIf
Dim $Array[$FileList[0]+1][4]
$Array[0][0] = "Название"
$Array[0][1] = "Количество единиц"
$Array[0][2] = "Количество двоек"
$Array[0][3] = "Результат"
_ArrayDisplay($FileList,"$FileList")
For $i = 1 To $FileList[0]
$nFile = StringSplit($FileList[$i],'.')
$sFile = FileOpen(@DesktopDir&'\123\'&$FileList[$i], 0)
$sText = FileRead($sFile)
StringReplace($sText, '1', '')
$one = @extended
StringReplace($sText, '2', '')
$two = @extended
$Rezultat = $one + $two
$Array[$i][0] = $nFile[1]
$Array[$i][1] = $one
$Array[$i][2] = $two
$Array[$i][3] = $Rezultat
Next

_ArrayDisplay($Array,"$Array")



у меня выдается ошибка
Код:
Dim $Array[$FileList[0]+1][4]
Dim $Array[$FileList^ ERROR


у тебя работает?
 

Kasper

Знающий
Сообщения
70
Репутация
8
у тебя работает?
Да
L1vI9pUZRx
 
Автор
V

VermanVendetta13

Новичок
Сообщения
147
Репутация
0
Kasper сказал(а):


да я взял другой комп со старой версией и заработало. скажи а можно ли копировать эти результаты ячейками а не текстом?
прсто пытался скопировать в таблицу и цифры зашли все в одну ячейку
а слова в разные
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
VermanVendetta13,
Предупреждение За нарушение общих правил (пункт В.2):
Старайтесь избегать “Over quoting” (преувеличенное цитирование) - цитируйте только необходимую часть сообщения, которая наилучшим образом подчеркнёт суть цитируемого.


С уважением, ваш Глобальный модератор.




Скоро банить начну, задолбали. :mad:
 
Автор
V

VermanVendetta13

Новичок
Сообщения
147
Репутация
0
madmasles не сердись пожалуйста. Я просто не знаю как ответить на сообщение без цитирования
 

Kasper

Знающий
Сообщения
70
Репутация
8
VermanVendetta13 [?]
скажи а можно ли копировать эти результаты ячейками а не текстом?прсто пытался скопировать в таблицу и цифры зашли все в одну ячейкуа слова в разные
Вроде можно. Читай документацию Ecxel'я.
 
Верх