gergerger111
Новичок
- Сообщения
- 17
- Репутация
- 0
Есть список файлов txt (имена которых формируются в боксе 1)
Была задача создать добавить из бокса 1 в бокс 2 имена файлов
И сформировать в ТХТ формате список имён файлов из (бокса 2)
Проблема заключается в том что если в имени файлов ТХТ формата (бокс 1) есть Рус-Англ буквы он не добовляется
Попробовал все кодировки из функции FileOpen (все равно не сохраняет)
В коде есть пути на диск Д и пути к тестовым файлам формата ТХТ (можно поменять на свой)
[/quote]
Была задача создать добавить из бокса 1 в бокс 2 имена файлов
И сформировать в ТХТ формате список имён файлов из (бокса 2)
Проблема заключается в том что если в имени файлов ТХТ формата (бокс 1) есть Рус-Англ буквы он не добовляется
Попробовал все кодировки из функции FileOpen (все равно не сохраняет)
В коде есть пути на диск Д и пути к тестовым файлам формата ТХТ (можно поменять на свой)
Код:
#include <GuiListBox.au3>
#include <GUIConstantsEx.au3>
#include <FileOperations.au3>
Global $sItems
HotKeySet ("{ESC}", "ESC")
$Debug_LB = False
$rWin2 = GUICreate("Test", 600, 296)
$Input1 = GUICtrlCreateInput('', 10, 5, 360, 20)
$add = GUICtrlCreateButton (" add ", 265, 50)
$del = GUICtrlCreateButton (" del ", 265, 100)
$save = GUICtrlCreateButton (" save ", 265, 150)
$new = GUICtrlCreateButton ("Новый", 262, 200)
$hListBox = GUICtrlCreateList("", 2, 52, 256, 196)
$hListBox2 = GUICtrlCreateList("", 307, 52, 256, 196)
GUISetState()
; Добавляет файл
_GUICtrlListBox_Dir ($hListBox, "D:\555\*.txt")
; Цикл выполняется, пока окно не будет закрыто
While 1
$msg = GUIGetMsg($rWin2)
Switch $msg
Case $GUI_EVENT_CLOSE
$msg = $GUI_EVENT_CLOSE
ExitLoop
Case $add
$zz = _GUICtrlListBox_GetCurSel($hListBox)
;~ $gg = _GUICtrlListBox_GetText($hListBox, $zz)
$zzz = GUICtrlRead ($hListBox)
$gh = 'ADD:\s(.*?)'
If StringRegExp($zzz, $gh, 1) = 0 And $zzz <> "" Then
;~ MsgBox (0, "", $zzz)
_GUICtrlListBox_AddString ($hListBox2, $zzz)
_GUICtrlListBox_ReplaceString($hListBox, $zz, "ADD: " & $zzz)
;~ _GUICtrlListBox_AddString ($hListBox2, $zzz)
Else
;~ MsgBox (0, "", "NO")
EndIf
Case $del
$zzz2 = GUICtrlRead ($hListBox2)
$rz = "ADD: " & $zzz2
$in = _GUICtrlListBox_FindString($hListBox, $rz, True)
_GUICtrlListBox_ReplaceString ($hListBox, $in, $zzz2)
$in2 = _GUICtrlListBox_FindInText ($hListBox2, $zzz2)
_GUICtrlListBox_DeleteString($hListBox2, $in2)
;~ MsgBox (0, "", "nice")
Case $save
$imp = GUICtrlRead ($Input1)
If FileExists("D:\" & $imp & ".txt") Then
If MsgBox(4 + 32, 'Файл уже существует', 'Пересохранить?') = 6 Then
MsgBox(4096, '', '"Да"')
If $imp <> "" Then
$hFile = FileOpen("D:\" & $imp & ".txt", 16384)
$Co = _GUICtrlListBox_GetCount($hListBox2)
For $hh = 0 To $Co
$hh2 = _GUICtrlListBox_GetText($hListBox2, $hh)
If $hh2 <> 0 Then FileWrite($hFile, $hh2 & @CRLF)
Next
Else
MsgBox (16, "", "Error")
EndIf
Else
MsgBox(16, '', '"Нет"')
EndIf
Else
If $imp <> "" Then
$hFile = FileOpen("D:\" & $imp & ".txt", 138)
$Co2 = _GUICtrlListBox_GetCount($hListBox2)
For $hh = 0 To $Co2
$hh2 = _GUICtrlListBox_GetText($hListBox2, $hh)
MsgBox (16, "", $hh2)
If $hh2 <> 0 Then FileWrite ($hFile, $hh2 & @CRLF)
Next
Else
MsgBox (16, "", "Error")
EndIf
EndIf
Case $new
GUICtrlDelete ($hListBox2)
GUICtrlDelete ($hListBox)
Global $hListBox = GUICtrlCreateList("", 2, 52, 256, 196)
_GUICtrlListBox_Dir ($hListBox, "D:\555\*.txt")
Global $hListBox2 = GUICtrlCreateList("", 307, 52, 256, 196)
GUICtrlSetData ($Input1, "")
EndSwitch
WEnd
GUIDelete()
Func ESC ()
Exit
EndFunc
[/quote]