Jump to content
Sign in to follow this  
terraya

Read Input and Save [with some options]

Recommended Posts

terraya

Hello everyone,

 

i am working atm at a small programm,

i want to make it work like this:

I click on "NEW" i can add a new Customer,

i want to read the input and save it (the thing is i want to make it

work for me and my friend in the internet so i think we need a internet database but firstly

i want to make it work on my laptop only for me)

 

i dont know in what to save it cuz "txt" is a bit weird , why?

becouse later i want to make a button which search for the "customer"

 

if i press on the other button not "NEW", if i press on "Search", then i have to

write the customers name in, and the info i got from the customer has to show  up

and be changeable.

 

i hope someone understand my poor english xD ,

well here is the script which is not finisht cuz i dont know how to finish the idea.

 

 

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$GUI = GUICreate("Form1", 429, 148, 249, 151)
$NEW = GUICtrlCreateButton("NEW", 48, 24, 75, 25)
$Search = GUICtrlCreateButton("Search", 48, 54, 75, 25)
$SAVE = GUICtrlCreateButton("SAVE", 328, 112, 75, 25)
$EDIT = GUICtrlCreateButton("EDIT", 328, 112, 75, 25)
GUISetState(@SW_SHOW, $GUI)
GUICtrlSetState ($SAVE, $GUI_HIDE)
GUICtrlSetState ($EDIT, $GUI_HIDE)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
         Case $NEW
            GUICtrlSetState ($SAVE, $GUI_SHOW)
            _NewCustomer()
         Case $Search
            GUICtrlSetState ($EDIT, $GUI_SHOW)
            _SearchCustomer()
         Case $SAVE
            ;not completed yet cuz i dont know in which format to save it to
            ;read it again in the GUI to make it edit able.


    EndSwitch
WEnd

Func _SearchCustomer()

   $Input2 = GUICtrlCreateInput("", 136, 57, 121, 21)

EndFunc

Func _NewCustomer()

   $Input1 = GUICtrlCreateInput("", 136, 27, 121, 21)

EndFunc

 

test functions.au3

Share this post


Link to post
Share on other sites
GordonFreeman

You are no reason to create a control every time like in _SearchCustomer and _NewCustomer funcs. I writte an very noob example saving the data in Ini files in your computer.

When you save you need first read the value in input control, you can do it using GuiCtrlRead($Input1). $Input1 are nothing more than a variable that stores the control ID to use in functions like GuiCtrlRead, GuiCtrlSetState, GuiCtrlSetColor, etc

 

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 405, 438, 192, 124)
$Label1 = GUICtrlCreateLabel("Name:", 8, 8, 35, 17)
$InputName = GUICtrlCreateInput("", 72, 8, 185, 21)
$Label = GUICtrlCreateLabel("Credit Card:", 8, 40, 59, 17)
$InputCreditCard = GUICtrlCreateInput("", 71, 34, 185, 21)
$Label3 = GUICtrlCreateLabel("Age:", 40, 72, 26, 17)
$InputAge = GUICtrlCreateInput("", 72, 72, 185, 21)
$ButtonSave = GUICtrlCreateButton("Save", 88, 112, 169, 33)
$List1 = GUICtrlCreateList("", 8, 192, 153, 227)
$Label4 = GUICtrlCreateLabel("Name:", 168, 200, 35, 17)
$LabelName = GUICtrlCreateLabel("", 208, 200, 188, 20)
$Label6 = GUICtrlCreateLabel("Credit Card:", 168, 232, 59, 17)
$LabelCreditCard = GUICtrlCreateLabel("", 232, 232, 164, 20)
$Label8 = GUICtrlCreateLabel("Age:", 168, 264, 59, 17)
$LabelAge = GUICtrlCreateLabel("", 232, 264, 164, 20)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

$aSecNames = IniReadSectionNames("Customer.ini")

For $i = 2 to UBound($aSecNames)

    GUICtrlSetData($List1,$aSecNames[$i-1])

Next

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $ButtonSave
            $Name = GUICtrlRead($InputName)
            $CreditCard = GUICtrlRead($InputCreditCard)
            $Age = GUICtrlRead($InputAge)

            IniWrite("Customer.ini",$Name,"CreditCard",$CreditCard)
            IniWrite("Customer.ini",$Name,"Age",$Age)

            $aSecNames = IniReadSectionNames("Customer.ini")

            For $i = 2 to UBound($aSecNames)

                GUICtrlSetData($List1,$aSecNames[$i-1])

            Next
        Case $List1
            $Name = GUICtrlRead($List1)
            $CreditCard = IniRead("Customer.ini",$Name,"CreditCard","None")
            $Age = IniRead("Customer.ini",$Name,"Age","None")

            GUICtrlSetData($LabelName,$Name)
            GUICtrlSetData($LabelCreditCard,$CreditCard)
            GUICtrlSetData($LabelAge,$Age)

    EndSwitch
WEnd

 

Edited by GordonFreeman

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  

  • Similar Content

    • Lisuter
      By Lisuter
      Hello...

      How i can write data from txt to +3 Input?
      Example:
      In txt i have:
      Michael XYZ, 21, Boston
      Olex Marshal, 17, Boston
      Alex XYZ, 19, Boston
       
      And now i want load that data to input in autoit. 

      Name          y.o          city
      [ Input1]  [Input2] [Input3]
      [ Input4]  [Input5] [Input6]
      [ Input7]  [Input8] [Input9]
       
      After load should be:
      Name               y.o            city
      [Michael XYZ]      [21]     [Boston]
      [ Olex Marshal]  [17]      [Boston]
      [ Alex XYZ]           [19]      [Boston]
       
      FileOpen("Test.txt",0)                          $aas = GUICtrlSetData($Input1, FileReadLine("Test.txt",1))             FileClose("Test.txt") But its wrong. ofcourse its load all to input 1. So now how do you load this data directly into each input separately? The comma stop sign is here. Each line is a new person
    • ufukreis1212
      By ufukreis1212
      Hello, I am new members. Help me please. I want vbs convert to au3 .
      This vbs code : 
      'deneme Set SystemSet = GetObject("winmgmts:").InstancesOf ("Win32_OperatingSystem") strOSArch = GetObject("winmgmts:root\cimv2:Win32_OperatingSystem=@").OSArchitecture Set objNetwork = CreateObject("Wscript.Network") Set wshShell = CreateObject( "WScript.Shell" ) strComputerName = wshShell.ExpandEnvironmentStrings( "%COMPUTERNAME%" ) Set oShell = WScript.CreateObject("WScript.Shell") proc_arch = oShell.ExpandEnvironmentStrings("%PROCESSOR_ARCHITECTURE%") Set oEnv = oShell.Environment("SYSTEM") strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") Set colMB = objWMIService.ExecQuery("Select * from Win32_BaseBoard") Set colCSes = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem") Set colProcessors = objWMIService.ExecQuery("Select * from Win32_Processor") Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") Set colItemsx = objWMIService.ExecQuery( _ "SELECT * FROM Win32_VideoController",,48) '------------------------------------------------------------------- Set obj = GetObject("winmgmts:").InstancesOf("Win32_PhysicalMemory") i = 1 For Each obj2 In obj memTmp1 = obj2.capacity / 1024 / 1024 TotalRam = TotalRam + memTmp1 i = i +1 Next '-------------------------------------------------------------------- Dim objWMIService : Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colItems = objWMIService.ExecQuery("Select Architecture from Win32_Processor") For Each objItem in colItems if objItem.Architecture = 0 then strArchitecture = "x86" end if if objItem.Architecture = 9 then strArchitecture = "x64" end if next '-------------------------------------------------------------------- strComputer = "." ' Local computer strMemory = "" i = 1 set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") set colItems = objWMIService.ExecQuery("Select * from Win32_PhysicalMemory") For Each objItem In colItems if strMemory <> "" then strMemory = strMemory & vbcrlf strMemory = strMemory & "Bank" & i & " : " & (objItem.Capacity /1024 /1024) & " Mb" i = i + 1 Next installedModules = i - 1 Set colItems = objWMIService.ExecQuery("Select * from Win32_PhysicalMemoryArray") For Each objItem in colItems totalSlots = objItem.MemoryDevices Next '---------------------------------------------------------------------- Set objWMISvc = GetObject( "winmgmts:\\.\root\cimv2" ) Set colItems = objWMISvc.ExecQuery( "Select * from Win32_ComputerSystem" ) For Each objItem in colItems strComputerDomain = objItem.Domain Next for each System in SystemSet For Each objItem in colItemsx For Each objProcessor in colProcessors For Each bbType In colMB MbVendor = bbType.Manufacturer MbModel = bbType.Product MsgBox "İşletim Sistemi : " & System.Caption & vbNewLine & _ "İşletim Sistemi Versionu : " & + System.Version & vbNewLine & _ "Windows Mimari Yapısı: " & strOSArch & vbNewLine & _ "Kullanıcı isminiz: " & objNetwork.UserName & vbNewLine & _ "Bilgisayar ismi: " & strComputerName & vbNewLine & _ "Çalışma Grubu: " & strComputerDomain & vbNewLine & _ "--------------------------------------" & vbNewLine & _ "Anakart: " & MbVendor & " " & "[" & MbModel & "]" & vbNewLine & _ "--------------------------------------" & vbNewLine & _ "Grafik Kartı: " & objItem.Caption & vbNewLine & _ "Driver Version: " & objItem.DriverVersion & vbNewLine & _ "--------------------------------------" & vbNewLine & _ "İşlemci Üreticisi: " & objProcessor.Manufacturer & vbNewLine & _ "İşlemci İsmi: " & objProcessor.Name & vbNewLine & _ "CPU Mimarisi: " & strArchitecture & vbNewLine & _ "İşlemci Çekirdek sayısı: " & oEnv("NUMBER_OF_PROCESSORS") & vbNewLine & _ "--------------------------------------" & vbNewLine & _ "Toplam RAM: " & TotalRam & " MB" & vbNewLine & _ "Toplam Slot: " & totalSlots & vbNewLine & _ "Boş Slot: " & (totalSlots - installedModules) & vbNewLine & _ "Ramlerin bulunduğu slotlar:" & vbcrlf & strMemory,0,"deneme" Next Next Next Next please help me , thanks.
    • JuanFelipe
      By JuanFelipe
       
      Hello friends, I have a query, it happens that I have a matrix nxn, the first column of this contains each cell a number with 21 digits, when I pass this matrix to Excel I obviously write that number as 1,10016E + 20, I solved it by adding a * at the end of each cell, but I want it to be written as a text so that I do not have to remove that *, I searched in Google but could not find an effective solution, thanks in advance. 
    • Puls3
      By Puls3
      Hi, This is my first post on the AutoIt Forums, I most of the time was able to get help from this community by merely searching though google and have been able to solve hundreds of problems this way, though in this case I was incapable of finding a solution to my problem. I am quite confident that it is a user error (And my fault) but I haven't been able to determine what I did wrong, any and all help would be greatly appreciated! I have uploaded my whole script pardon passwords to provide as much information as possible.
      I declared a global array at the top of the script and am having issues when I try to set it's value, and I fail to understand why.
      Error Message:
      "D:\Projects\AutoIt\Arena\Base.au3" (270) : ==> Subscript used on non-accessible variable.:
      $ExpMax[$i] = IniRead($TempSavePath, "Combatant" & $i, "ExpMax", $ExpMax[0])
      $ExpMax^ ERROR
      ConsoleWrite Log:
      Ran.
      Checking launch parameters.
      No launch parameters.
      Initiating load.
      Checking for save file.
      Save file not found.
      Load canceled.
      Loading or creating Combatant 1
      Base.au3
    • Blois
      By Blois
      Hi Guis,
       
      I need to create keyboard shortcut to navigate the tabs and activate them, but I could not use the code below:
      #include <TabConstants.au3> #include <WindowsConstants.au3> #include <GuiTab.au3> #include <GUIConstantsEx.au3> HotKeySet("^{TAB}", "_TabRight") HotKeySet("^+{TAB}", "_TabLeft") $gui = GUICreate("test",450, 300) $Tab1 = GUICtrlCreateTab(20, 24, 425, 201) $TabSheet1 = GUICtrlCreateTabItem("Tabsheet 1") $lbContagemGrupos2 = GUICtrlCreateLabel("aaaa", 50, 50) GUICtrlSetColor(-1, 0x0000FF) GUICtrlCreateTabItem("") $TabSheet2 = GUICtrlCreateTabItem(" ") $TabSheet3 = GUICtrlCreateTabItem(" ") GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop EndSwitch WEnd Func _TabRight() $CurPos = _GUICtrlTab_GetCurSel($Tab1) _GUICtrlTab_SetCurSel($Tab1, $CurPos + 1) $tab = "$TabSheet" & $CurPos GUICtrlSetState($TabSheet1 + $CurPos, $GUI_SHOW) Return EndFunc Func _TabLeft() $CurPos = _GUICtrlTab_GetCurSel($Tab1) _GUICtrlTab_SetCurSel($Tab1, $CurPos - 1) $tab = "$TabSheet" & $CurPos GUICtrlSetState($TabSheet1 + $CurPos, $GUI_SHOW) Return EndFunc Exit  
      can you help me?
×