Telefonbok i Lua ver 0.1

10Nov06

Eftersom jag har varit ledig hela dagen i dag har jag haft möjlighet att fortsätta att fördjupa mig i Lua. I brist på bättre idé började jag koda än en klasisk telefonbok. Inte för att jag behöver någon telefonbok utan för att har gjort såna förr. Fördelen med att lära sig ett nytt språk igenom att skriva något man har gjort tidigare är att man kan koncentrear sig på det nya språket och inte på att lösa problem. Jag har tidigare skrivit telefonböcker i Visual Basic, php, C++, C++ med STL och en version med stöd för XML, och nu en i Lua. Lua versionen har änsålänge inget stöd för att öppna och spara filer, men det kommer, när jag orkar titta på den delen. Det som var svårast var att klura ut hur man skulle få ut datan som jag har lagt i “tabeller” (arrayer) som är “2D”, men tackvare det snälla folket på #lua at freenode gick det bra.

lua kod

-- superduper telefonboken skriven i lua
lista = {}
polare = {fnamn="Fredrik", enamn="Persson", 
                tele="123-456789", epost="fp@gnu.nu"}
table.insert(lista,polare)
polare = {fnamn="Kalle", enamn="Svensson", 
                tele="123-987654", epost="ks@gnu.nu"}
table.insert(lista,polare)
-- c-ifierar koden så att det blir bättre struktur
function main()
  local running = true
  while running do
    io.write('n1 = Ny polare, 2 = Visa polare, 0 = Avsluta nAnge alternativ: ')
    state = io.read()
    if state == '0' then running = false end
    if state == '1' then
      local namn, lnamn, telefon, email
      io.write("Förnamn: ")
      namn = io.read()
      io.write("Efternamn: ")
      lnamn = io.read()
      io.write("Telefon: ")
      telefon = io.read()
      io.write("e-post: ")
      email = io.read()
      polare = {fnamn=namn, enamn=lnamn, tele=telefon, epost=email}
      table.insert(lista,polare)
    end
    if state == '2' then
      for k,v in ipairs(lista) do
        print(v.fnamn, " ", v.enamn)
      end
   end
  end
end

main()



No Responses Yet to “Telefonbok i Lua ver 0.1”

  1. Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: