Что нового

Запись в ТХТ и работа с ним

Noober

Новичок
Сообщения
16
Репутация
0
Парни помогите.
Есть форма.

Код:
#include <GUIConstants.au3>

$Form1_1 = GUICreate("Form1", 324, 326, 205, 152)
$Input1 = GUICtrlCreateInput("1", 32, 40, 129, 21)
$Combo1 = GUICtrlCreateCombo("3", 32, 176, 121, 25)
$Input2 = GUICtrlCreateInput("2", 32, 104, 129, 21)
$Edit1 = GUICtrlCreateEdit("", 184, 32, 129, 281)
GUICtrlSetData($Edit1, "4", 1)
GUICtrlSetData($Edit1, @CRLF&"44", 1)
GUICtrlSetData($Edit1, @CRLF&"444", 1)
GUICtrlSetData($combo1, "33|333|3333", 1)
$Label1 = GUICtrlCreateLabel("Текст1", 40, 8, 36, 17)
$Label2 = GUICtrlCreateLabel("Текст2", 40, 72, 36, 17)
$Label3 = GUICtrlCreateLabel("Текст3", 40, 144, 36, 17)
$Label4 = GUICtrlCreateLabel("Текст4", 192, 8, 36, 17)
$Button1 = GUICtrlCreateButton("Запись в TXT", 32, 216, 129, 33, 0)
$Button2 = GUICtrlCreateButton("Запустить МАК", 32, 264, 129, 41, 0)
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
WEnd

Как сделать так что бы он записывал (дописывал) в файл ТХТ строчки вида:
[Строчка1 из текста4] [текст1] [текст2] [выбор из текста3]
[Строчка2 из текста4] [текст1] [текст2] [выбор из текста3]
[Строчка3 из текста4] [текст1] [текст2] [выбор из текста3]
А при запуске МАК работал бы по типу

Код:
WinWaitActive ('ARM')
Global $aFileRead
$aFileRead = StringSplit(StringStripCR(FileRead("z.txt")), @LF,@CR)
For $i = 1 To $aFileRead[0]
    Send("....")                          ;[Строчка1 из текста4]
    Send("....")                          ;[текст1]
    Send("....")                          ;[текст1]
    Send("....")                          ;[выбор из текста3]
 Next
 

joiner

Модератор
Локальный модератор
Сообщения
3 056
Репутация
511
Код:
#include <GUIConstants.au3>
Global  $Input1, $Combo1, $Combo1

$Form1_1 = GUICreate("Form1", 324, 326, 205, 152)
$Input1 = GUICtrlCreateInput("1", 32, 40, 129, 21)
$Combo1 = GUICtrlCreateCombo("3", 32, 176, 121, 25)
$Input2 = GUICtrlCreateInput("2", 32, 104, 129, 21)
$Edit1 = GUICtrlCreateEdit("", 184, 32, 129, 281)
GUICtrlSetData($Edit1, "4", 1)
GUICtrlSetData($Edit1, @CRLF&"44", 1)
GUICtrlSetData($Edit1, @CRLF&"444", 1)
GUICtrlSetData($combo1, "33|333|3333", 1)
$Label1 = GUICtrlCreateLabel("Текст1", 40, 8, 36, 17)
$Label2 = GUICtrlCreateLabel("Текст2", 40, 72, 36, 17)
$Label3 = GUICtrlCreateLabel("Текст3", 40, 144, 36, 17)
$Label4 = GUICtrlCreateLabel("Текст4", 192, 8, 36, 17)
$Button1 = GUICtrlCreateButton("Запись в TXT", 32, 216, 129, 33, 0)
$Button2 = GUICtrlCreateButton("Запустить МАК", 32, 264, 129, 41, 0)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
		Case $Button1
FileOpen("123.ini",1)
FileWriteLine("123.ini",ControlCommand("Form1", "", "Edit4", "GetSelected") & GUICtrlRead($Input1) & GUICtrlRead($Input2) & GUICtrlRead($combo1))
   FileClose("123.ini")
   EndSwitch
WEnd
 
Автор
N

Noober

Новичок
Сообщения
16
Репутация
0
[?]
undefined сказал(а):
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
FileOpen("123.ini",1)
FileWriteLine("123.ini",ControlCommand("Form1", "", "Edit4", "GetSelected") & GUICtrlRead($Input1) & GUICtrlRead($Input2) & GUICtrlRead($combo1))
FileClose("123.ini")
EndSwitch
WEnd
С этим не идет получается: 0123
А мне грубо говоря надо:
4 1 2 3
44 1 2 3
444 1 2 3
 

joiner

Модератор
Локальный модератор
Сообщения
3 056
Репутация
511
Noober сказал(а):
С этим не идет получается: 0123
надо выделить строчку в Edit1 и нажать кнопку создания текста..
можно так:
Код:
$12 = ControlCommand ( "Form1", "", "Edit4", "GetLineCount", "")
;или так$12 = _GUICtrlEdit_GetLineCount($Edit1)
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
		For $i =$12 To 1 Step -1
				FileOpen("123.txt",1)
				FileWriteLine("123.txt",ControlCommand("Form1","","Edit4","GetLine", $i)&GUICtrlRead($Input1)&GUICtrlRead($Input2)&GUICtrlRead($Combo1))
				FileClose("123.txt")
				Next
	EndSwitch
WEnd
 

ynbIpb

Скриптер
Сообщения
398
Репутация
109
Код:
Func _writetxt();функция записи: [Строчка1 из текста4] [текст1] [текст2] [выбор из текста3] 
$Input1txt = GUICtrlRead ($Input1); читаем текст 1 
$Input2txt = GUICtrlRead ($Input2); читем текст 2 
$Combo1txt = GUICtrlRead ($Combo1); читаем что выбрано в комбо 
$Edit1txt = GUICtrlRead ($Edit1); читаем весь список целиком из текста 4 
$Edit1txt = StringStripCR ($Edit1txt);удаляем из строки все символы "возврат каретки" 
$Edit1txt = StringSplit ($Edit1txt, Chr(10)); разбить строку на куски 
$txtfile = FileOpen ( @ScriptDir & "\log.txt", 1);запись только в конец файла 
For $i=1 to $Edit1txt[0]; крутим цикл столько раз сколько элементов в списке Edit1 
FileWriteLine ($txtfile, $Edit1txt[$i]&" "&$Input1txt&" "&$Input2txt&" "&$Combo1txt) 
Next 
FileClose ($txtfile) 
EndFunc

Func _readtxt()
$filetxt = FileOpen ( @ScriptDir & "\log.txt", 0); открыть для чтения
$allfiletxt = FileRead ($filetxt); читаем весь текст из файла
$allfiletxt = StringStripCR ($allfiletxt);удаляем из строки все символы "возврат каретки"
$allfiletxt = StringSplit ($allfiletxt, Chr(10)); разбить строку на куски (получаем массив из строк)
Run (@WindowsDir&"\notepad.exe"); запускаем блокнот (только для демонстрации примера)
For $i=1 to $allfiletxt[0]; крутим цикл столько раз сколько строк
If $allfiletxt[$i] = "" Then ExitLoop ; есть строка пустая, выход из цикла
$stringtxt = StringSplit ($allfiletxt[$i], " "); разбить строку на куски (в качестве разделителя пробел)
;------ тут вставишь своё ---------------
sleep(1000)
WinActivate ("[CLASS:Notepad]"); активируем окно блокнота
Send($stringtxt[1]&@CR); Строчка1 из текста4
Send($stringtxt[2]&@CR); текст1
Send($stringtxt[2]&@CR); текст1
Send($stringtxt[4]&@CR); выбор из текста3
;------ тут вставишь своё ---------------
Next 
FileClose ($filetxt)
EndFunc
 
Автор
N

Noober

Новичок
Сообщения
16
Репутация
0
to ynbIpb
Ник не оправдываешь ;D
Большое СПАСИБО.
 

Cartman

Новичок
Сообщения
1
Репутация
0
[Автоматизация] Re: Запись в ТХТ и работа с ним

Как сделать все то же самое только с чтением из InputBox'а? :-[
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Cartman
создай тему и подробно опиши проблему
 
Верх