Что нового

[Данные, строки] Вставка строк из текстого документа в поле ввода

MooRiS

Новичок
Сообщения
3
Репутация
0
Привет всем) помогите немного подправить скрипт , проблема вот в чем, есть текстовый документ вида :
11111111
22222222
33333333
44444444
55555555
66666666
77777777
88888888
99999999
00000000
необходимо после нажатия клавиши в поле ввода читалась каждая строчка, примера вот такого:
пользователь 11111111 привет
пользователь 22222222 привет
и т,д,

Код:
#include <GuiConstants.au3>

$file = FileOpen("1.txt", 0)

If $file = -1 Then
    MsgBox(4096, "Ошибка", "Невозможно открыть файл.")
    Exit
EndIf

While 1
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop

	
$GUI=GUICreate('test',400,400)
$Input =  GUICtrlCreateInput($line,10,10)
$Button=GuiCtrlCreateButton('Жми',250,10)
$Edit=GUICtrlCreateEdit('',10,60,300,300)

GUISetState()
WEnd

While 1
    $msg=GUIGetMsg()
    if $msg=$GUI_EVENT_CLOSE Then Exit
    if $msg=$Button Then
        $text='пользователь'&GUICtrlRead($Input)&' привет'
        GUICtrlSetData($Edit,$text)
		
    EndIf

WEnd

FileClose($file)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: [Данные, строки] Чтение строк из текстого документа

Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Модератор.






Добавлено:
Сообщение автоматически объединено:

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"[Данные, строки] Чтение строк из текстого документа" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Модератор.
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Так?
Код:
#include <File.au3>
#include <Array.au3>
#include <GuiConstants.au3>

Global $file = '1.txt'

If Not FileExists($file) Then Exit MsgBox(4096, "Ошибка", "Невозможно открыть файл.")

$GUI = GUICreate('test',400,400)
$Input = GUICtrlCreateInput('00000000', 10, 10)
$Button = GuiCtrlCreateButton('Жми', 250, 10)
$Edit = GUICtrlCreateEdit('', 10, 60, 300, 300)
GUISetState()

While 1
	Switch GUIGetMsg()
		Case -3
			Exit
		Case $Button
			$linescount = _FileCountLines($file)
			For $i = 1 To $linescount
				$readline = FileReadLine($file, $i)
				GUICtrlSetData($Edit, GUICtrlRead($Edit) & 'Пользователь ' & $readline & ' привет' & @CRLF)
			Next
	EndSwitch
WEnd
 
Автор
M

MooRiS

Новичок
Сообщения
3
Репутация
0
практически так, но мне необходимо чтобы в поле ввода поэтапно вставлялись строки, например при открытие скрипта в поле была первая строчка из документа, тоесть 1111111 , после нажатия клавиши выполнялась уже вторая строчка (222222222), еще нажатие и (33333333) и т.д. , как бы поочередно , а не все сразу !
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Код:
#include <File.au3>
#include <GuiConstants.au3>

Global $var = 0
Global $file = '1.txt'

If Not FileExists($file) Then Exit MsgBox(4096, "Ошибка", "Невозможно открыть файл.")

$GUI = GUICreate('test',400,400)
$Input = GUICtrlCreateInput(FileReadLine($file, 1), 10, 10)
$Button = GuiCtrlCreateButton('Жми', 250, 10)
$Edit = GUICtrlCreateEdit('', 10, 60, 300, 300)
GUISetState()

While 1
    Switch GUIGetMsg()
        Case -3
            Exit
        Case $Button
			$ReadNextLine = FileReadLine($file, $var + 1)
			If $ReadNextLine <> '' Then
				GUICtrlSetData($Input, $ReadNextLine)
                GUICtrlSetData($Edit, GUICtrlRead($Edit) & 'Пользователь ' & GUICtrlRead($Input) & ' привет' & @CRLF)
                $var = $var + 1
            EndIf
    EndSwitch
WEnd
 
Автор
M

MooRiS

Новичок
Сообщения
3
Репутация
0
спасибоо большоее :smile: :ok:


Добавлено:
Сообщение автоматически объединено:

появился еще один вопрос!
а как быть если например текст будет вида
111111:сергей
222222:илья
333333:женя
как легким способом разделить уже в два поле ввода чтобы в 1 было "111111", после разделителя "сергей" будет во втором поле ?
image.png
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
MooRiS [?]
появился еще один вопрос!

Предупреждение За нарушение общих правил (пункт В.4):
Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.


С уважением, ваш Модератор.
 
Верх