Sign in to follow this  
Followers 0
kneze

read data from TXT File and put it to a listbox.

3 posts in this topic

#1 ·  Posted (edited)

Hi

i try to read data from TXT File and put it to a listbox.

TXT File will contain data like:

User;Computer Name;Computer

Mark;C10000;Dell 2344

Justin;C20002;Dell 2344

Peter;C30000;Dell 2344

etc.

I would like to use a Combobox where i can select a text file. After selection the content should be displayed

in the listbox.

The code that i have assebled displays the content of txt file in a msgbox.

Could you please give me some tipps.

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <WindowsConstants.au3>



$Form1 = GUICreate("Form1", 718, 733, 192, 124)
$List1 = GUICtrlCreateList("", 165, 90, 201, 331)
$Button1 = GUICtrlCreateButton("Button1", 390, 395, 116, 31)
GUISetState(@SW_SHOW)


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

case $Button1
DIM $text

$file = FileOpen("C:\temp\sample.txt", 0)


; Check if file opened for reading OK
If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
EndIf

; Read in lines of text until the EOF is reached
While 1
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
        
    $text = $text & @CRLF & $line 
   
Wend

FileClose($file)
MsgBox(0, "Line read:", $text)



    EndSwitch
WEnd
Edited by kneze

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

Here's how I'd do it, but I'd use a ListView rather than a list box so that you can separate the values better:

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListview.au3>
#include <WindowsConstants.au3>


Global $LV_Array[10000][3]
$Form1 = GUICreate("Form1", 718, 733, 192, 124)
$List1 = GUICtrlCreateListView("User|Computer Name|Computer", 165, 90, 201, 331)
$Button1 = GUICtrlCreateButton("Button1", 390, 395, 116, 31)
GUISetState(@SW_SHOW)


While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            Dim $text
            $file = FileOpen("C:\temp\sample.txt", 0)
            ; Check if file opened for reading OK
            If $file = -1 Then
                MsgBox(0, "Error", "Unable to open file.")
                Exit
            EndIf
            $I = 0
            ; Read in lines of text until the EOF is reached
            While 1
                $Line = ""
                $Line = FileReadLine($file)
                If @error = -1 Then ExitLoop
                $text = StringSplit($Line, ";")
;~              $text = $text & @CRLF & $line
                For $X = 0 To 2
                    $LV_Array[$I][$X] = $text[$X]
                Next
                $I += 1
            WEnd
            FileClose($file)
                        ReDim $LV_Array[$I][3]
            _GUICtrlListView_AddArray($List1, $LV_Array)

;~          MsgBox(0, "Line read:", $text)
    EndSwitch
WEnd
Edited by BrewManNH

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites

No need to reinvent the wheel - use _FileReadToArray to get your file content.

After that you just use _GUICtrlListView_AddItem for every element in the array.

When you select a new file from the combo - _FileReadToArray again, delete all elements from the ListView then use again _GUICtrlListView_AddItem for every element in the array.

Pretty straightforward.

Or you can use _GUICtrlListVew_AddArray - if you manage to get your array in the proper format.


SNMP_UDF ... for SNMPv1 and v2c so far, GetBulk and a new example script

wannabe "Unbeatable" Tic-Tac-Toe

Paper-Scissor-Rock ... try to beat it anyway :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0