Что нового

Сохранение и вставка текста из txt файла.

uppdrag

Новичок
Сообщения
22
Репутация
0
Здравствуйте.
Хочу написать небольшой скрипт, на подобие icq,но по проще для локальной сети...
Помогите и поправте, что не так...
Смысл такой: В поле Input1 вводится текст. При нажатии кнопки Buton1 текст сохраняется в txt файл. После чего текст должен вывестись в поле Input 2.(лучше в поле Edit)
В чем проблема: Текст вводится и сохраняется, но не отображается. Приходится закрывать скрипт, а при повторном запуске текст появляется в окне обзора. Мне надо, чтобы текст вставлялся без закрытия,а при нажатии одной кнопки и сохранялся и загружался в поле обзора..... Так же чтоб можно было загружать содержимое txt файла по указанному ip адрессу(txt файл будет распологаться у админа на локальном сервере)
Вот что у меня есть:
Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global $sConfig = @ScriptDir & "\1.txt"
Global $sNotes = StringReplace(IniRead($sConfig, "Himerty", "Notes", ""), "\n", @CRLF)
SoundPlay("\musik\*.mp3")

#Region ### START Koda GUI section ### 
$Form1_1 = GUICreate("", 403, 396, 192, 124)
$Input1 = GUICtrlCreateInput("", 16, 272, 369, 75)
$Button1 = GUICtrlCreateButton("Отправить", 312, 360, 75, 25)
;$Input3 = GUICtrlCreateInput("", 16, 360, 137, 21)
$Button2 = GUICtrlCreateButton("Обновить", 160, 360, 97, 25)
$Edit1 = GUICtrlCreateEdit($sNotes, 16, 16, 369, 241)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button2
			obnovit()
 		Case $Button1
            $sNotes = StringReplace(GUICtrlRead($Input1), @CRLF, "\n")
            IniWrite($sConfig, "Himerty", "Notes", $sNotes)

	EndSwitch
WEnd

Func obnovit()
	
	
EndFunc

А еще бесит что каждый новый текст замещает предыдущий. А можно сделать так чтобы старый текст оставался, а к нему добовлялся новый.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
uppdrag,
А так?
Код:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>

Global $sConfig = @ScriptDir & "\1.txt"
Global $sNotes = StringReplace(IniRead($sConfig, "Himerty", "Notes", ""), "\n", @CRLF)
;SoundPlay("\musik\*.mp3")

#region ### START Koda GUI section ###
$hForm = GUICreate("", 403, 396, 192, 124)
$nEdit1 = GUICtrlCreateEdit("", 16, 272, 369, 75, $ES_WANTRETURN)
$nButton1 = GUICtrlCreateButton("Отправить", 312, 360, 75, 25)
;$Input3 = GUICtrlCreateInput("", 16, 360, 137, 21)
$nButton2 = GUICtrlCreateButton("Обновить", 160, 360, 97, 25)
$nEdit2 = GUICtrlCreateEdit($sNotes, 16, 16, 369, 241, $ES_WANTRETURN)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###

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

		Case $nButton1
			$sNotes = GUICtrlRead($nEdit1)
			If $sNotes Then
				If StringRight($sNotes, 2) <> @CRLF Then
					$sNotes &= @CRLF
				EndIf
				GUICtrlSetData($nEdit2, $sNotes, 1)
				IniWrite($sConfig, "Himerty", "Notes", StringReplace(GUICtrlRead($nEdit2), @CRLF, "\n"))
			EndIf
	EndSwitch
WEnd
 
Автор
U

uppdrag

Новичок
Сообщения
22
Репутация
0
А можно сделать так чтоб введеный текст удалялся после нажатия кнопки отправить?
А еще, где можно задать сразу в скрипте имя того, кто пишет? Чтоп в поле Edit отображалось перед текстом...
Еще чтоб в поле Edit нельзя было писать.....
 

panda_911

Только вверх, только вперед!
Сообщения
52
Репутация
8
Не думаю что выйдет в полное мере реализовать задуманое "на подобие icq,но по проще"
Если все действия будут завязаны на один текстовый документ, к которому одновременно нужен доступ и на чтение и на запись нескольким пользователям то думаю всплывут грабли.
Я бы смотрел в сторону простой отсылки сообщений по сети.
(правда чтоб прикрутить туда сохранение истории прийдется подумать)
 
Автор
U

uppdrag

Новичок
Сообщения
22
Репутация
0
а как правельно задать ссылку на txt файл в autoite, если он будет размещен где то в локальной сети. (уточняю, чтоб работало без доступа к инету)
Можно ли как то через ip компа в лок. сети?
 

Redline

AutoIT Гуру
Сообщения
506
Репутация
375
Вот посмотри чат
При отправке текста он исчезает из строки отправления, вставляется в окно чата и отправляется по сети. Может работать на одном компе в два окна (сервер и клиент): создаешь сервер, а клиентом подключаешься к своему локальному адресу (наподобие 10.10.30.2)
 
Верх