Что нового

Как загрузить строки в ListBox с файла?

frz

[FRZ]
Сообщения
9
Репутация
0
Как загрузить строки в ListBox с файла?

Код:
Func open_frd_ls()
$var = FileOpenDialog('Загрузка списка', '', "Списки (*.ls;*.txt)", 1 + 4)
$file = FileOpen($var,1)
;;А как загрузить строки в $frd_ls 
EndFunc


Помогите...)
 

snoitaleR

AutoIT Гуру
Сообщения
855
Репутация
223
frz
Если файл текстовый (не ini), то я вот так загружаю:

Код:
; НАЧАЛО

 Global $TEXT

 $DATAFILE=@ScriptDir&"\file.txt"

 $GUI=GUICreate("",400,300)
 $LIST=GUICtrlCreateList("",0,0,400,300)

 fLOAD()

 GUISetState()

 While true

  Switch GUIGetMsg()
   Case -3
    ExitLoop
  EndSwitch

 Wend

 Func fLOAD()
  $FILE=FileOpen($DATAFILE,0)
  $TEXT=FileRead($FILE)
  FileClose($FILE)
  $TEXT="|"&StringReplace($TEXT,@CRLF,"|")
  GUICtrlSetData($LIST,$TEXT)
 EndFunc
; КОНЕЦ
 

bulldog5293

Знающий
Сообщения
172
Репутация
10
Подскажите как быть если требуется 1-ю и 2-ю строку загрузить GUICtrlCreateList
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
bulldog5293 [?]
Подскажите как быть если требуется 1-ю и 2-ю строку загрузить GUICtrlCreateList

Можно так :
Код:
#include <GUIConstantsEx.au3>

GUICreate("My GUI list") 
$add = GUICtrlCreateButton("Add", 64, 32, 75, 25)
$mylist = GUICtrlCreateList("", 176, 32, 121, 300)
    
GUISetState()

While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
	  Case $GUI_EVENT_CLOSE
		 Exit
	  Case $add
		 AddStrings()  
   EndSwitch
WEnd

Func AddStrings()
   $file = FileOpen("test.txt", 0)
   If $file = -1 Then
	   MsgBox(0, "Error", "Unable to open file.")
	   Exit
   EndIf
   For $i=1 To 2
	  $line = FileReadLine($file)
	  GUICtrlSetData($mylist, $line)
   Next
   FileClose($file)
EndFunc
 

bulldog5293

Знающий
Сообщения
172
Репутация
10
А как быть если у меня guicreate уже через ф-ии
Код:
Func _GUI() 
$main2 = GUICreate("", 490, 480, -1, -1) 
GUICtrlCreateLabel("чихпых", 340, 22, 62, 17)
$answer= GUICtrlCreateInput("", 390, 22, 92, 17)
$Button_add = GUICtrlCreateButton("Сохранить", 340, 145, 60, 23, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Start", 340, 178, 62, 21, $WS_GROUP)
$LIST=GUICtrlCreateList("",0,0,200,300)
GUISetState() 
$sFileIni = @ScriptDir & "\чихпых.ini"
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
      Case $GUI_EVENT_CLOSE
         Exit
      Case $Button_add
         IniWrite ( $sFileIni, GUICtrlRead ( $Adress), GUICtrlRead ( $answer) , GUICtrlRead ( $sPass))
	 Case $TEXT
	$DATAFILE=@ScriptDir&"\чихпых.ini"
	$FILE=FileOpen($DATAFILE)
  $TEXT=FileReadLine($FILE,1)
  FileClose($FILE)
  GUICtrlSetData($LIST,$TEXT)
  
    EndSwitch
WEnd
EndFunc
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
bulldog5293 [?]
А как быть если у меня guicreate уже через ф-ии

У тебя не рабочий пример
И зачем создавать GUI в Ф-ии ?
В принципе Из ф-ии можно переходить в другую ф-ию , но это не совсем правильно



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

Где Input $Adress ?
Где Input $sPass ?
Где кнопка $TEXT ?

Если уж писать в ИНИ -файл через ИНИ ф-ии , То уж читать конечно проще тоже через них


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

Все очень просто :
Код:
; Запись В Ини-файл
IniWrite ( $sFileIni, "test", 'Login', GUICtrlRead ( $Login) )    ;Запись Логина
IniWrite ( $sFileIni, "test", 'Password', GUICtrlRead ( $Passwd) ); Запись Пароля
; В ИНИ-файле получится запись в виде :
;         [test]
;         Login=ABCDEF
;         Password=123456

;Чтение из ИНИ-файла:
$sLogin=IniRead (  $sFileIni, "test", 'Login', "default" ); Чтение Логина             (Полученный Результат :      ABCDEF)
$sPassword=IniRead (  $sFileIni, "test", 'Password', "default" ); Чтение Пароля       (Полученный Результат :      123456)
 

bulldog5293

Знающий
Сообщения
172
Репутация
10
Если не трудно можеш на моём примере показать где и что меня ть, а то у меня либо не пишутся либо не отображаются
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
bulldog5293 [?]
Если не трудно можеш на моём примере показать где и что меня ть, а то у меня либо не пишутся либо не отображаются

Вот :
Код:
#include <GUIConstantsEx.au3>

$_1 = GUICreate("NAC", 600, 300, -1, -1)
$sFileIni = @ScriptDir & "\test.ini"
GUICtrlCreateLabel("Login", 5, 5, 50, 20)
$answer = GUICtrlCreateInput("ABCDEF", 60, 5, 150, 20)
GUICtrlCreateLabel("Password", 5, 30, 60, 20)
$passwd = GUICtrlCreateInput("123456", 65, 30, 100,20)

$ButtonSave = GUICtrlCreateButton("Save", 10, 60, 50, 20)
$ButtonSetToList = GUICtrlCreateButton("Set", 10, 90, 50, 20)
$LIST=GUICtrlCreateList("",300,10,200,250)

GUISetState()

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
      Case $GUI_EVENT_CLOSE
         Exit
      Case $ButtonSave
         IniWrite ( $sFileIni, "test", 'Login',GUICtrlRead ( $answer))
		 ;IniWrite ( $sFileIni, "test", 'Passvord',GUICtrlRead ( $passwd))
	              IniWrite ( $sFileIni, "test", 'Password',GUICtrlRead ( $passwd))
      Case $ButtonSetToList
		 $sLogin=IniRead (  $sFileIni, "test", 'Login', "default" )
		  GUICtrlSetData($LIST, $sLogin)
		 $sPassword=IniRead (  $sFileIni, "test", 'Password', "default" )
		 GUICtrlSetData($LIST, $sPassword)
	EndSwitch
WEnd
 

bulldog5293

Знающий
Сообщения
172
Репутация
10
спс, всё бы хорошё, но почему у меня вторым параметром который являится пароль пишется defaul?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
bulldog5293 [?]
почему у меня вторым параметром который являится пароль пишется defaul?
Потому что оно указано в IniRead:
Код:
$sPassword=IniRead (  $sFileIni, "test", 'Password', "default" )

можно удалить оставив кавычки.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
bulldog5293 [?]
если удалить, то вобще не чего не видна
А что вам нужно там видеть? default возвращается если ключ в ini ещё не создан.


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

А ну конечно, там ошибка - при записи пишет в ключ Passvord, а читать пытается с Password :smile:
 
Верх