Что нового

как в GUICtrlCreateListView отобразить _WinAPI_CreateFile

snoitaleR

AutoIT Гуру
Сообщения
855
Репутация
223
bulldog5293
Я не понял зачем выводить одно, а сохранять другое, но сделал... :smile:

Код:
Switch GUIGetMsg()
   case -3
    exitloop
   case $BUTTON
    $TEXT=$TEXT&"|"&GUICtrlRead($INPUT1)&"|"&GUICtrlRead($INPUT2) ; изменено
    GUICtrlSetData($LIST,"|"&$TEXT)
    $TEXT=$TEXT&"|"&GUICtrlRead($INPUT3) ; добавлено
    $TEXT=StringReplace($TEXT,"|",@CRLF)
    $FILE=FileOpen($ADDR,2)
    FileWrite($FILE,$TEXT)
    FileClose($FILE)
  EndSwitch
 
Автор
B

bulldog5293

Знающий
Сообщения
172
Репутация
10
СПС, твой компактней у меня вот что получилось
Код:
#include <ListBoxConstants.au3>

$ADDR=@ScriptDir&"\буксы.txt"
$TEKST=@ScriptDir&"\sayt.txt"
$FILE=FileOpen($ADDR,0) ; Режим чтения
$FILE1=FileOpen($TEKST,0) ; Режим чтения
$TEXT=FileRead($FILE)
$TEXT1=FileRead($FILE1)
FileClose($FILE)
FileClose($FILE1)
$TEXT=StringReplace($TEXT,@CRLF,"|")
$TEXT1=StringReplace($TEXT1,@CRLF,"|")

 $GUI=GUICreate("Сохранение текста в полях",300,220)
 $INPUT1=GUICtrlCreateInput("Введите текст",10,10,280,25)
 $INPUT2=GUICtrlCreateInput("Введите текст",10,35,280,25)
 $INPUT3=GUICtrlCreateInput("Введите текст",10,60,280,25)
 $LIST=GUICtrlCreateList("",10,85,280,100,BitAND($GUI_SS_DEFAULT_LIST,BitNOT($LBS_SORT)))
 GUICtrlSetData($LIST,$TEXT)
 $BUTTON=GUICtrlCreateButton("Сохранить",10,185,280,25)

 GUISetState()

$TEXT=$TEXT1
GUICtrlSetData($LIST,$TEXT)
GUICtrlSetData($LIST,$TEXT1)
GUISetState() 
 while true

  Switch GUIGetMsg()
   case -3
    exitloop
   case $BUTTON
    $TEXT=$TEXT&"|"&GUICtrlRead($INPUT1)&"|"&GUICtrlRead($INPUT2) ; изменено
    GUICtrlSetData($LIST,"|"&$TEXT)
    $TEXT=$TEXT&"|"&GUICtrlRead($INPUT3) ; добавлено
    $TEXT=StringReplace($TEXT,"|",@CRLF)
    $FILE=FileOpen($ADDR,2)
    FileWrite($FILE,$TEXT)
    FileClose($FILE)
EndSwitch
WEnd

И вобще пока изобритал, получил это
Код:
#include <ListBoxConstants.au3>

$ADDR=@ScriptDir & "\" & @ScriptName
$INPUT3=@ScriptName
 $FILE=FileOpen($ADDR,0) ; Режим чтения
 $TEXT=FileRead($FILE)
 FileClose($FILE)
 $TEXT=StringReplace($TEXT,@CRLF,"|")

 $GUI=GUICreate("Сохранение текста в полях",300,220)
 $INPUT1=GUICtrlCreateInput("Введите текст",10,10,280,25)
 $INPUT2=GUICtrlCreateInput("Введите текст",10,35,280,25)
 $INPUT3=GUICtrlCreateInput("Введите текст",10,60,280,25)
 $LIST=GUICtrlCreateList("",10,85,280,100,BitAND($GUI_SS_DEFAULT_LIST,BitNOT($LBS_SORT)))
 GUICtrlSetData($LIST,$TEXT)
 $BUTTON=GUICtrlCreateButton("Сохранить",10,185,280,25)

 GUISetState()

 while true

  Switch GUIGetMsg()
   case -3
    exitloop
   case $BUTTON
    $TEXT&$TEXT"|"&GUICtrlRead($INPUT3)&"|"&GUICtrlRead($INPUT1)&"|"&GUICtrlRead($INPUT2)
	$TEXT=$TEXT
    GUICtrlSetData($LIST,"|"&$TEXT)
    $TEXT=StringReplace($TEXT,"|",@CRLF)
    $FILE=FileOpen($ADDR,2) ; Режим перезаписи
    FileWrite($FILE,$TEXT)
    FileClose($FILE)
  EndSwitch

 wend

; КОНЕЦ

проверь без компиляции, не знаю как всем, но меня радует что я придумал как делать собственный баг ;D
 

snoitaleR

AutoIT Гуру
Сообщения
855
Репутация
223
OffTopic:

bulldog5293
Получился саморедактирующийся скрипт... Жаль, что не работает... :smile:
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Для справки
Код:
@ScriptDir & "\" & @ScriptName = @ScriptFullPath
;)
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
OffTopic:
И почему народ до сих пор не пользуется Tidy...
 
Автор
B

bulldog5293

Знающий
Сообщения
172
Репутация
10
Подскажите как от сюда убрать отступ первой строки, тоесть что бы данные сразу с первой строки шли, а не со второй
Код:
#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>

 ; НАЧАЛО

 $ADDR=@ScriptDir&"\test.txt"

 $FILE=FileOpen($ADDR,0) ; Режим чтения
 $TEXT=FileRead($FILE)
 FileClose($FILE)
 $TEXT=StringReplace($TEXT,@CRLF,"|")

 $GUI=GUICreate("Сохранение текста в полях",300,220)
 $INPUT1=GUICtrlCreateInput("Введите текст",10,10,280,25)
 $INPUT2=GUICtrlCreateInput("Введите текст",10,35,280,25)
 $INPUT3=GUICtrlCreateInput("Введите текст",10,60,280,25)
 $LIST = GUICtrlCreateListView("1 Данные                  |2 Данные                   ",10,85,280,100)
$item1 = GUICtrlCreateListViewItem($TEXT, $LIST)
GUISetState()
  $BUTTON=GUICtrlCreateButton("Сохранить",10,185,280,25)

 GUISetState()

 while true

  Switch GUIGetMsg()
   case -3
    exitloop
   case $BUTTON
    $TEXT=$TEXT&"|"&GUICtrlRead($INPUT1)&"|"&GUICtrlRead($INPUT2) ; изменено
    GUICtrlSetData($LIST,"|"&$TEXT)
    $TEXT=$TEXT&"|"&GUICtrlRead($INPUT3) ; добавлено
    $TEXT=StringReplace($TEXT,"|",@CRLF)
    $FILE=FileOpen($ADDR,2)
    FileWrite($FILE,$TEXT)
    FileClose($FILE)
  EndSwitch

 wend

; КОНЕЦ

Всё что мог перебрал не чего не подходит
 

snoitaleR

AutoIT Гуру
Сообщения
855
Репутация
223
bulldog5293
Может, я слишком усложнил, но проще не получилось... :smile:

Код:
; НАЧАЛО

 $ADDR=@ScriptDir&"\test.txt"

 $FILE=FileOpen($ADDR,0)
 $TEXT=FileRead($FILE)
 FileClose($FILE)
 $TEXT=StringReplace($TEXT,@CRLF,"|")

 $GUI=GUICreate("Сохранение текста в полях",300,220)
 $INPUT1=GUICtrlCreateInput("Введите текст",10,10,280,25)
 $INPUT2=GUICtrlCreateInput("Введите текст",10,35,280,25)
 $INPUT3=GUICtrlCreateInput("Введите текст",10,60,280,25)
 $LIST = GUICtrlCreateListView("1 Данные                |2 Данные               ",10,85,280,100)

 $CITEM=0
 $CTEXT=$TEXT

 While $CTEXT<>""
  $CITEM+=1
  $LEN=StringInStr($CTEXT,"|")
  Assign("ITEM"&$CITEM,GUICtrlCreateListViewItem(StringLeft($CTEXT,$LEN-1),$LIST))
  $CTEXT=StringTrimLeft($CTEXT,$LEN)
 WEnd

 $BUTTON=GUICtrlCreateButton("Сохранить",10,185,280,25)

 GUISetState()

 while true

  Switch GUIGetMsg()
   case -3
    exitloop
   case $BUTTON
    Assign("ITEM"&$CITEM+1,GUICtrlCreateListViewItem(GUICtrlRead($INPUT1),$LIST))
    Assign("ITEM"&$CITEM+2,GUICtrlCreateListViewItem(GUICtrlRead($INPUT2),$LIST))
    $TEXT=$TEXT&GUICtrlRead($INPUT1)&"|"&GUICtrlRead($INPUT2)&"|"
    $TEXT=StringReplace($TEXT,"|",@CRLF)
    $FILE=FileOpen($ADDR,2)
    FileWrite($FILE,$TEXT)
    FileClose($FILE)
  EndSwitch

 wend

; КОНЕЦ
 
Автор
B

bulldog5293

Знающий
Сообщения
172
Репутация
10
Странно, у меня почему то не показывает окно
Канечно спс, за то что в спешки писал, но ты там строки перепутал, вот так правельней
Код:
#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <ListBoxConstants.au3>
$ADDR=@ScriptDir&"\test.txt"

 $FILE=FileOpen($ADDR,0)
 $TEXT=FileRead($FILE)
 FileClose($FILE)
 $TEXT=StringReplace($TEXT,@CRLF,"|")

 $GUI=GUICreate("Сохранение текста в полях",300,220)
 $INPUT1=GUICtrlCreateInput("Введите текст",10,10,280,25)
 $INPUT2=GUICtrlCreateInput("Введите текст",10,35,280,25)
 $INPUT3=GUICtrlCreateInput("Введите текст",10,60,280,25)
 $LIST = GUICtrlCreateListView("1 Данные                |2 Данные               ",10,85,280,100)
$BUTTON=GUICtrlCreateButton("Сохранить",10,185,280,25)
GUISetState()
 $CITEM=0
 $CTEXT=$TEXT

 While $CTEXT<>""
  $CITEM+=1
  $LEN=StringInStr($CTEXT,"|")
  Assign("ITEM"&$CITEM,GUICtrlCreateListViewItem(StringLeft($CTEXT,$LEN-1),$LIST))
  $CTEXT=StringTrimLeft($CTEXT,$LEN)
 WEnd

 while true

  Switch GUIGetMsg()
   case -3
    exitloop
   case $BUTTON
    Assign("ITEM"&$CITEM+1,GUICtrlCreateListViewItem(GUICtrlRead($INPUT1),$LIST))
    Assign("ITEM"&$CITEM+2,GUICtrlCreateListViewItem(GUICtrlRead($INPUT2),$LIST))
    $TEXT=$TEXT&GUICtrlRead($INPUT1)&"|"&GUICtrlRead($INPUT2)&"|"&GUICtrlRead($INPUT3)
    $TEXT=StringReplace($TEXT,"|",@CRLF)
    $FILE=FileOpen($ADDR,2)
    FileWrite($FILE,$TEXT)
    FileClose($FILE)
  EndSwitch

 wend



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

Похоже я один заметил такой баг, как предотвратить полное открытие файла? Тоесть если заносятся 3 значения и показываются 2, то и при следующем окрытие программы также показывалась 2, пробывал через filereadline? но чёт у меня не получилось :'( прошу помощи опять
 

snoitaleR

AutoIT Гуру
Сообщения
855
Репутация
223
bulldog5293
Третье поле ввода мы договорились добавлять только в список, но не в файл...
 
Верх