fortages
Новичок
- Сообщения
- 81
- Репутация
- 3
Старалась назвать тему в соответствии с правилами, но в голове такая каша, что не знаю, правильно ли подписала.
Помогите, пожалуйста, разобраться.
Есть список фамилий в txt файлах (на каждого свой файл).
Пользователю по нажатию кнопки нужно показать перечень этих txt файлов в папке.
После того, как он выбрал с помощью checkbox нужные фамилии, занести содержание этих индивидуальных txt файлов в один общий - info.txt
Чтоб после работы программы в файле info.txt было что-то наподобии
Содержимое файла ivanov.txt
Содержимое файла sidorov.txt
Содержимое файла petrov.txt
Проблема следующая:
перечень файлов в папке показать получается
операции с файлами тоже получаются
а слепить это в кучу не могу...
то есть, второй пример работает как нужно, но в нем нужно вручную писать
это неудобно, т.к. папка может в будущем пополниться новыми файлами, на которые не прописано
Просто так красивее даже внешне, если окно - как при использовании _FileListToArray, чем когда просто подписанные чекбоксы:
Как можно сделать, чтобы было начало кода - отображение содержимого папки, а вторая часть - вот такая работа с файлами? Из первого примера дальше 24й строчки ничего не поняла. Стыдно, но не могу додуматься, что делать...
Помогите, пожалуйста, разобраться.
Есть список фамилий в txt файлах (на каждого свой файл).
Пользователю по нажатию кнопки нужно показать перечень этих txt файлов в папке.
После того, как он выбрал с помощью checkbox нужные фамилии, занести содержание этих индивидуальных txt файлов в один общий - info.txt
Чтоб после работы программы в файле info.txt было что-то наподобии
Содержимое файла ivanov.txt
Содержимое файла sidorov.txt
Содержимое файла petrov.txt
Проблема следующая:
перечень файлов в папке показать получается
Код:
#include <GUIConstantsEx.au3>
#include <File.au3>
#include <WinAPIEx.au3>
#include <GuiListView.au3>
Dim $aDir[1] = ["C:\Users\usrs\Desktop\Test\data\default"]
$iInd = 0
$hGui = GUICreate('Аккаунты', 400, 320)
$nListView = GUICtrlCreateListView('', 2, 2, 394, 268, $GUI_SS_DEFAULT_LISTVIEW, _
BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES, $LVS_EX_GRIDLINES))
$hListView = GUICtrlGetHandle($nListView)
_GUICtrlListView_AddColumn($nListView, 'Файл', 380)
$nButtonGo = GUICtrlCreateButton('ОК', 75, 280, 100, 30)
$ButtonExit = GUICtrlCreateButton('Выход', 225, 280, 100, 30)
GUISetState()
_WinAPI_EmptyWorkingSet()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $nButtonGo
$aFiles = _FileListToArray($aDir[$iInd], '*', 1)
If @error Then ContinueLoop
Dim $aItems[$aFiles[0]][1]
For $i = 1 To $aFiles[0]
$aItems[$i - 1][0] = $aFiles[$i]
Next
$aFiles = 0
_GUICtrlListView_DeleteAllItems($hListView)
_GUICtrlListView_BeginUpdate($hListView)
_GUICtrlListView_AddArray($nListView, $aItems)
_GUICtrlListView_EndUpdate($hListView)
;_GUICtrlListView_SetItemChecked($nListView, -1) ;Check All
WinSetTitle($hGui, '', $aDir[$iInd])
$aItems = 0
$iInd += 1
If $iInd = 3 Then $iInd = 0
Case $ButtonExit
Exit
EndSwitch
WEnd
Код:
#include <File.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Second Test", 203, 137, 192, 124)
$Checkbox1 = GUICtrlCreateCheckbox("Иванов", 24, 16, 97, 17)
$Checkbox2 = GUICtrlCreateCheckbox("Петров", 24, 40, 97, 17)
$Checkbox3 = GUICtrlCreateCheckbox("Сидоров", 24, 64, 97, 17)
$Button1 = GUICtrlCreateButton("ОК", 64, 96, 75, 25)
GUISetState(@SW_SHOW)
$ivanov = "C:\Users\usrs\Desktop\Test\data\default\Иванов.txt"
FileOpen($ivanov, 0)
$petrov = "C:\Users\usrs\Desktop\Test\data\default\Петров.txt"
FileOpen($petrov, 0)
$sidorov = "C:\Users\usrs\Desktop\Test\data\default\Сидоров.txt"
FileOpen($sidorov, 0)
;чистка после предыдущего запуска программы
FileDelete("C:\Users\usrs\Desktop\Test\data\info.txt")
_FileCreate("C:\Users\usrs\Desktop\Test\data\info.txt")
$info = "C:\Users\usrs\Desktop\Test\data\info.txt"
FileOpen($info, 0)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
If GUICtrlRead($Checkbox1) = $GUI_UNCHECKED And GUICtrlRead($Checkbox2) = $GUI_UNCHECKED And GUICtrlRead($Checkbox3) = $GUI_UNCHECKED Then
MsgBox(0, '', 'Не выбрали фамилию')
EndIf
If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
$buffer = FileRead($ivanov)
FileWrite($info, $buffer)
EndIf
If GUICtrlRead($Checkbox2) = $GUI_CHECKED Then
$buffer = FileRead($petrov)
FileWrite($info, $buffer)
EndIf
If GUICtrlRead($Checkbox3) = $GUI_CHECKED Then
$buffer = FileRead($sidorov)
FileWrite($info, $buffer)
EndIf
MsgBox(64,"Test", "Данные добавлены в файл")
Exit
EndSwitch
WEnd
то есть, второй пример работает как нужно, но в нем нужно вручную писать
Код:
GUICtrlCreateCheckbox("Иванов", 24, 16, 97, 17)
это неудобно, т.к. папка может в будущем пополниться новыми файлами, на которые не прописано
Код:
GUICtrlCreateCheckbox("newuser", 24, 16, 97, 17)
Просто так красивее даже внешне, если окно - как при использовании _FileListToArray, чем когда просто подписанные чекбоксы:
Как можно сделать, чтобы было начало кода - отображение содержимого папки, а вторая часть - вот такая работа с файлами? Из первого примера дальше 24й строчки ничего не поняла. Стыдно, но не могу додуматься, что делать...