Что нового

Загрузка текста из .rtf

Сообщения
75
Репутация
-2
Код:
#include <GUIConstantsEx.au3>
#include <GuiRichEdit.au3>
#include <WindowsConstants.au3>

Example()

Func Example()
	Local $hGui, $iMsg, $idBtnNext, $iStep = 0, $idLblMsg, $hRichEdit
	$hGui = GUICreate("Example (" & StringTrimRight(@ScriptName, StringLen(".exe")) & ")", 320, 350, -1, -1)
	$hRichEdit = _GUICtrlRichEdit_Create($hGui, "This is a test.", 10, 10, 300, 220, _
			BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
	$idLblMsg = GUICtrlCreateLabel("", 10, 235, 300, 60)
	$idBtnNext = GUICtrlCreateButton("Next", 270, 310, 40, 30)
	GUISetState(@SW_SHOW)

	_GUICtrlRichEdit_SetText($hRichEdit, "First paragraph")
	While True
		$iMsg = GUIGetMsg()
		Select
			Case $iMsg = $GUI_EVENT_CLOSE
				_GUICtrlRichEdit_Destroy($hRichEdit) ; needed unless script crashes
				; GUIDelete() 	; is OK too
				Exit
			Case $iMsg = $idBtnNext
				$iStep += 1
				Switch $iStep
					Case 1
						_GUICtrlRichEdit_StreamToFile($hRichEdit, @DesktopDir & "\gcre.rtf")
						GUICtrlSetData($idLblMsg, "Streamed to gcre.rtf")
					Case 2
						_GUICtrlRichEdit_SetText($hRichEdit, "")
						_GUICtrlRichEdit_StreamFromFile($hRichEdit, @DesktopDir & "\121212.rtf")
						GUICtrlSetData($idLblMsg, "Streamed from gcre.rtf")
					Case 3
						_GUICtrlRichEdit_SetSel($hRichEdit, 2, 6)
						_GUICtrlRichEdit_StreamFromFile($hRichEdit, @DesktopDir & "\gcre.rtf")
						GUICtrlSetData($idLblMsg, "Replaced selection: an intentional mess!")
						GUICtrlSetState($idBtnNext, $GUI_DISABLE)
				EndSwitch
		EndSelect
	WEnd
EndFunc   ;==>Example



Таким способом можно загрузить текст из rtf, если он изначально сохранен таким же способом. А если вручную создать документ wordpad. то при загрузке текста данным способом вместо него загружаются какие то символы. Почему?
 

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
wasd сказал(а):
А если вручную создать документ wordpad. то при загрузке текста данным способом вместо него загружаются какие то символы.

Тут "Поиск-замена в RTF-файлах?" ответ на ваш вопрос

Пример как отобразить RTF в исходном виде и как получить из него текст

Код:
#include <GuiConstants.au3>

GUICreate("", 400, 400)
$iCopy = GUICtrlCreateButton("Копировать", 125, 365, 150, 30)
$oRP = ObjCreate("RICHTEXT.RichtextCtrl.1")
If Not IsObj($oRP) Then Exit MsgBox(16, "Ошибка", "Не удалось создать обьект.")
$iActiveX = GUICtrlCreateObj($oRP, 5, 5, 390, 355)
If FileExists(@ScriptDir & "\1.rtf") Then $oRP.LoadFile(@ScriptDir & "\1.rtf")
GUISetState()

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			$oRP.SaveFile(@ScriptDir & "\1.rtf")
			Exit
		Case $iCopy
			ClipPut($oRP.Text)
	EndSwitch
WEnd
 
Верх