<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3861059009390733472</id><updated>2011-11-28T03:00:33.175-08:00</updated><category term='SDmm'/><category term='NCL'/><category term='world of lua'/><category term='Plua'/><category term='aLua'/><category term='English'/><category term='Lua'/><category term='files'/><category term='Ginga'/><category term='Português'/><category term='digital tv'/><category term='binding'/><category term='delphi'/><title type='text'>Mundo da Lua - Lua World  - Von Lua Welt</title><subtitle type='html'>Este blog é dedicado a linguagem de programação Lua em suas varias aplicações.&lt;br&gt;&lt;br&gt;

This blog is dedicated to Lua programming Language in theirs many aplications.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-427629698743973275</id><published>2010-05-16T17:36:00.000-07:00</published><updated>2010-05-16T19:29:12.774-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='binding'/><category scheme='http://www.blogger.com/atom/ns#' term='Português'/><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Lua'/><title type='text'>Interpretando script lua em aplicativo delphi</title><content type='html'>Sábado pela manhã (15/05/2010) determinado a dar jeito em como fazer para implementar as fórmulas de cálculo variáveis para montar a folha de pagamento do módulo salários e benefícios da prática IV (gestão de pessoas) da faculdade, finalmente fiz a opção por Lua.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Outras possibilidades que eu tinha:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1 - &lt;a href="http://www.augos.com/software/inflisp.html"&gt;Lisp&lt;/a&gt; - Sugestão do&lt;a href="http://www.google.com/profiles/signori8"&gt; Eduardo Signori&lt;/a&gt;. Problema é que eu nunca programei LISP.&lt;br /&gt;&lt;br /&gt;2 - Um algoritmo montado pelo &lt;a href="http://maikelscheid.blogspot.com/2009/03/resolvendo-expressoes-matematicas-no.html"&gt;Maikel Sheid&lt;/a&gt; e sugerido por ele. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3 - O &lt;a href="http://mateuschies.blogspot.com/"&gt;Mateus Chies&lt;/a&gt; também me enviou um interpretador de fórmulas que ele&amp;nbsp; fez em JavaScript... já era um começo para fazer em Delphi.&lt;br /&gt;&lt;br /&gt;4 - Opção de não implementar, ano passado não saiu nem folha de pagamento, que dirá "fórmulas variáveis" para os benefícios em função de indicadores dos colaboradores.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;As principais referências que me fizeram decidir por Lua:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1 - &lt;a href="http://www.matrix44.de/lua/"&gt;http://www.matrix44.de/lua/&lt;/a&gt; -&lt;b&gt; Lua 5.0 Delphi Binding&lt;/b&gt;, produzido pelo Rolf Meyerhoff em 2005. Lua agora está em uma versão mais nova, mas a 5.0 já era muito boa! Essa implementação é bem completa.&lt;br /&gt;&lt;br /&gt;2 -&lt;a href="http://www.explainth.at/en/delphi/luawrap.shtml"&gt; http://www.explainth.at/en/delphi/luawrap.shtml&lt;/a&gt; -&lt;b&gt; Delphi Wrapper for Lua&lt;/b&gt; - Mesma coisa que a implementação do Rolf, só que mais simples. Já daria com isso.&lt;br /&gt;&lt;br /&gt;3 - &lt;a href="http://www.spreendigital.de/blog/2009/09/28/lua-5-1-for-delphi-2010/"&gt;http://www.spreendigital.de/blog/2009/09/28/lua-5-1-for-delphi-2010/&lt;/a&gt; - &lt;b&gt;Lua 5.1 for Delphi 2010&lt;/b&gt; - Esse cara pegou a implementação do Rolf e ajustou para funcionar com o nova classe de strings do Delphi 2010, além disso fez o binding para versão 5.1 de Lua e implementou alguma coisa a mais de orientação a objeto.&lt;br /&gt;&lt;br /&gt;4 - &lt;a href="http://www.gamedev.com.br/forum/viewtopic.php?t=2145"&gt;http://www.gamedev.com.br/forum/viewtopic.php?t=2145&lt;/a&gt; - &lt;b&gt;Lua e Delphi&lt;/b&gt; - Aqui conversa vai e conversa vem o cara &lt;a href="http://jersonseling.wikispaces.com/file/view/DelphiLua.zip"&gt;deixou o link com exemplos&lt;/a&gt; de programas em Delphi usando a implementação do Rolf. Era o que eu precisava. Dentro do zip ainda tem textos, explicando conceitualmente como as coisas funcionam. Obrigado &lt;a href="http://jersonseling.wikispaces.com/"&gt;Jerson&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* Obs geral: Na Alemanha deve ter muito programador, e pessoal de qualidade, porque sem querer já me deparei com muito, mas muito material de excelente qualidade, em alemão ou de um autor alemão.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;Bem a idea aqui é fazer a aplicação Delphi gravar em um banco de dados oracle a fóruma. Através dos controles padrão do DBNavegator vai se poder criar novas fórumulas, editar e excluir. Depois vamos colocar um botão para "rodar" a fóruma cadastrada. Sigam-me os bons!&lt;br /&gt;&lt;br /&gt;A tabela no BD é essa (complicada não)&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;create table programas(&lt;br /&gt; luascript varchar(4000)&lt;br /&gt;)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Agora no form da nossa aplicação, adicionamos um "SQLConnection" e configuramos a conexão.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_MvDshKp6n3U/S_B5El5qz-I/AAAAAAAAAu0/uABW4haXAVQ/s1600/01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="340" src="http://3.bp.blogspot.com/_MvDshKp6n3U/S_B5El5qz-I/AAAAAAAAAu0/uABW4haXAVQ/s400/01.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://bolivarbutzke.blogspot.com/2010/03/criacao-de-um-sistema-no-delphi-com.html"&gt;Tudo padrão&lt;/a&gt;, como se fosse só uma tela para cadastrar dados. A única modificação foi que o "DBEdit" que veio&amp;nbsp; quando arrastei daquela telinha dos "field list" do "Client Data Set" eu substituí por um DBMemo, e também eu não tenho um Data Module, coloquei os componentes no form mesmo.&lt;br /&gt;&lt;br /&gt;O Edit lá em baixo do formulário vai mostrar o resultado do script.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_MvDshKp6n3U/S_B5H8ztSTI/AAAAAAAAAu8/9jAgPMJvBX0/s1600/02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="262" src="http://3.bp.blogspot.com/_MvDshKp6n3U/S_B5H8ztSTI/AAAAAAAAAu8/9jAgPMJvBX0/s400/02.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;No evento "onClick" do botão "Salvar no BD" não se esqueça de mandar efetivamente gravar. Veja o código:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;ClientDataSet1.ApplyUpdates(0);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Bom, antes de prosseguir, adicione os arquivos selecionados na figura a seguir no diretório do seu projeto. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_MvDshKp6n3U/S_B5a3V4o8I/AAAAAAAAAvM/QMukvyeFm8U/s1600/04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="362" src="http://2.bp.blogspot.com/_MvDshKp6n3U/S_B5a3V4o8I/AAAAAAAAAvM/QMukvyeFm8U/s400/04.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Adicione ao projeto (project &amp;gt; add to project) o arquivo lua.pas (que tem declaradas as interfaces com Lua).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_MvDshKp6n3U/S_B5SNEtZdI/AAAAAAAAAvE/wKtnryQOwXA/s1600/03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/_MvDshKp6n3U/S_B5SNEtZdI/AAAAAAAAAvE/wKtnryQOwXA/s400/03.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;E também Alt + F11, adicione Lua a suas "uses" na tela em que a interpretação do código será feita.&lt;br /&gt;&lt;br /&gt;Pronto. Agora é fazer o load do código, passar para o interpretador e pegar o resultado. Segue o código do botão "executar".&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;procedure TForm1.Button2Click(Sender: TObject);&lt;br /&gt;  var&lt;br /&gt;    pL: ^lua_State;&lt;br /&gt;    resultado: real;&lt;br /&gt;begin&lt;br /&gt;  pL:= lua_open();&lt;br /&gt;  // habilita  as bibliotecas padrão de lua&lt;br /&gt;  luaopen_base(pL);&lt;br /&gt;  luaopen_string(pL);&lt;br /&gt;  luaopen_table(pL);&lt;br /&gt;  luaopen_math(pL);&lt;br /&gt;  luaopen_io(pL);&lt;br /&gt;&lt;br /&gt;  // salva o arquivo no disco&lt;br /&gt;  DBMemo1.Lines.SaveToFile('temp.lua');&lt;br /&gt;  // passa ele para o interpretador&lt;br /&gt;  lua_dofile(pL,'temp.lua');&lt;br /&gt;&lt;br /&gt;  lua_settop(pL,0);// reseta a pilha&lt;br /&gt;  lua_getglobal(pL,'resultado');&lt;br /&gt;&lt;br /&gt;  resultado:= lua_tonumber(pL,1); // pegando o item 1 da pilha&lt;br /&gt;&lt;br /&gt;  Edit1.Text:= FloatToStr(resultado); // passa para o delphi&lt;br /&gt;&lt;br /&gt;  lua_close(pL); // fecha&lt;br /&gt;end;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Uma coisa estranha que achei é que não deu certo fazer "lua_dostring"... ele sempre dava imcompatibilidade entre os tipos "string" e o PAnsiChar, que era o que ele estava esperando. Dessa forma, primeiro mandei salvar num arquivo e depois fazer o load dele. Não gostei disso, não é performático. Mas para testes está ok.&lt;br /&gt;&lt;br /&gt;Bom, salvando, compilando e brincando com a aplicação...&lt;br /&gt;&lt;br /&gt;Se você não sabe Lua, recomendo &lt;a href="http://www.lua.org/manual/5.0/"&gt;o manual&lt;/a&gt; (a versão 5.0 né, porque esse binding é baseado na versão 5.0, não na mais recente, pode ser que alguma coisa mudou). Mas é mais fácil que fritar ovo!&lt;br /&gt;&lt;br /&gt;Veja que a nossa aplicação (Delphi) está resgatando o valor da variável Lua "resultado" então podemos fazer qualquer coisa, o valor que tiver atribuído em "resultado" vai ser trazido para a aplicação.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_MvDshKp6n3U/S_B5oITKZFI/AAAAAAAAAvU/8lkq5r8BDmI/s1600/05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="262" src="http://1.bp.blogspot.com/_MvDshKp6n3U/S_B5oITKZFI/AAAAAAAAAvU/8lkq5r8BDmI/s400/05.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Passar valor entra um aplicativo compilado e o interpretador Lua, funciona através de pilhas, é pilhas, como você aprendia lá na disciplina de estrutura de dados. Você coloca na pilha a função, depois os parâmetros dela, quando estiver ok, manda executar, ele executa, limpa a pilha e devolve na pilha o resultado, aí você resgata o resultado, limpa a pilha e manda as demais instruções. Se você já mexeu com&lt;a href="http://includec.blogspot.com/2009/08/carregando-variaves-de-arquivo-lua.html"&gt; Lua + C&lt;/a&gt; deve estar achando tudo muito familiar.&lt;br /&gt;&lt;br /&gt;Bom, mais expressões matemáticas...&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_MvDshKp6n3U/S_B5w1Sqd5I/AAAAAAAAAvc/LlFDmPfHbFI/s1600/06.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="262" src="http://4.bp.blogspot.com/_MvDshKp6n3U/S_B5w1Sqd5I/AAAAAAAAAvc/LlFDmPfHbFI/s400/06.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;E lembrando que da para mandar a fazer qualquer coisa dentro desse script que da para fazer com Lua. Sistemas de arquivos, BD, trabalhar com tables, strings.. nossa! Só a parte muito bem desenvolvida de Lua para trabalhar com strings já vale um binding!!! &lt;br /&gt;&lt;br /&gt;Da para também o script lua chamar funções, e pegar valor de variáveis do programa, implementadas em Delphi/Pascal. De uma olhada naquela material do gamedev que eu indiquei o download antes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;E seguem mais testes...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_MvDshKp6n3U/S_B57MYXKoI/AAAAAAAAAvk/NLLet2HdDDo/s1600/07.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="262" src="http://2.bp.blogspot.com/_MvDshKp6n3U/S_B57MYXKoI/AAAAAAAAAvk/NLLet2HdDDo/s400/07.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Lucidity? Sim, &lt;a href="http://www.lastfm.com.br/music/Delain"&gt;Delain&lt;/a&gt;, o álbum que eu estava ouvindo.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Download&lt;/b&gt; do &lt;a href="http://www.4shared.com/file/xWP6ej5m/delphi-lua.html"&gt;exemplo aqui&lt;/a&gt;. Com os fontes, as DLL's e a Lua.pas. Bom estudo!&lt;br /&gt;&lt;br /&gt;Saudações!&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-427629698743973275?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/427629698743973275/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2010/05/interpretando-script-lua-em-aplicativo.html#comment-form' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/427629698743973275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/427629698743973275'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2010/05/interpretando-script-lua-em-aplicativo.html' title='Interpretando script lua em aplicativo delphi'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_MvDshKp6n3U/S_B5El5qz-I/AAAAAAAAAu0/uABW4haXAVQ/s72-c/01.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-2753169018962690721</id><published>2010-01-30T17:04:00.000-08:00</published><updated>2010-06-10T19:32:24.913-07:00</updated><title type='text'>Tutorial - Apostila - Material - Help - Ajuda sobre Lua (linguagem de programação)</title><content type='html'>* Título estratégicamnete pensado para ser encontrado pelos buscadores.&lt;br /&gt;&lt;br /&gt;Vamos ao que interessa. Dia 01/12 de 2009 houve um tópico interessante no&lt;a href="http://groups.google.com/group/lua-br"&gt; grupo de discussão sobre Lua em Português&lt;/a&gt;. O sujeito pediu por referências sobre Lua.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Eis as sugestões do grupo:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://versaodigital.blogspot.com/search/label/LUA"&gt;http://versaodigital.blogspot.com/search/label/LUA&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;No site oficial:&lt;br /&gt;&lt;a href="http://www.lua.org/portugues.html#sabermais"&gt;http://www.lua.org/portugues.html#sabermais&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.lua.org/docs.html"&gt;http://www.lua.org/docs.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Uma Introdução à Programação em Lua&lt;br /&gt;&lt;a href="http://www.lua.org/doc/jai2009.pdf"&gt;http://www.lua.org/doc/jai2009.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Lua Conceitos Basicos e API C&lt;br /&gt;&lt;a href="http://www.keplerproject.org/docs/apostila_lua_2008.pdf"&gt;http://www.keplerproject.org/docs/apostila_lua_2008.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Aqui o Dado Sutter junta o material que encontra. Diz ele que aceita colaboradores para melhorar esse documento.&lt;br /&gt;&lt;a href="https://docs.google.com/Doc?docid=0AVxZt6XI4l64YWpoczZzbXdiNnQ0XzI3MWRrNGt3cWZo&amp;amp;hl=en"&gt;https://docs.google.com/Doc?docid=0AVxZt6XI4l64YWpoczZzbXdiNnQ0XzI3MWRrNGt3cWZo&amp;amp;hl=en&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;O Rafael Carvalho da &lt;a href="http://www.peta5.com.br/"&gt;Peta5&lt;/a&gt; passou um link de um tutorial sobre NCL, muito legal.&lt;br /&gt;Em suas próprias palavras:&lt;br /&gt;&lt;br /&gt;"Disponibilizamos para download uma apostila sobre desenvolvimento para TV digital utilizando NCL e Lua, nela tem um capítulo inteiro sobre Lua."&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.peta5.com.br/br/downloads/category/1-apostilas"&gt;http://www.peta5.com.br/br/downloads/category/1-apostilas&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bom é isso amigos, aos iniciantes (e aos eternos iniciantes como eu) espero que ajude!&lt;br /&gt;&lt;br /&gt;Saudações!&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-2753169018962690721?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/2753169018962690721/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2010/01/tutorial-apostila-material-help-ajuda.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/2753169018962690721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/2753169018962690721'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2010/01/tutorial-apostila-material-help-ajuda.html' title='Tutorial - Apostila - Material - Help - Ajuda sobre Lua (linguagem de programação)'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-1021165447800539372</id><published>2010-01-28T20:05:00.000-08:00</published><updated>2010-05-16T19:35:42.655-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Plua'/><category scheme='http://www.blogger.com/atom/ns#' term='Português'/><title type='text'>Como ler o Memo do plam com Plua</title><content type='html'>Bom, primeira coisa a saber que cada registro do memo, cada anotação lá não é um arquivo ou um banco de dados separado. Cada memo, cada nota é um registro na database MemoDB.&lt;br /&gt;&lt;br /&gt;Lua, Plua é fácil, o código é auto-explicativo... Segue.&lt;br /&gt;&lt;pre class="lua" name="code"&gt;-- open memos for read&lt;br /&gt;f,n = io.open("db:/MemoDB", "r")&lt;br /&gt;text = "";&lt;br /&gt;-- fetch all registers&lt;br /&gt;for i = 0,n-1,1 do&lt;br /&gt;f:openrec(i) -- open register&lt;br /&gt;line = f:read("*l") -- read first line of register&lt;br /&gt;if(line == "sd-vt") then -- if is a correct file that I need&lt;br /&gt;s = f:read("*a") -- read all content of memo register&lt;br /&gt;text = text .. s&lt;br /&gt;end&lt;br /&gt;end&lt;br /&gt;f:close()&lt;br /&gt;&lt;br /&gt;gui.control{type="field", lines=11, columns=30, text=text}&lt;br /&gt;&lt;br /&gt;gui.main()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Código daqui: &lt;a href="http://code.google.com/p/code4funfiles/source/browse/trunk/palm-sdvt/tests/read_memo.lua?r=10"&gt;http://code.google.com/p/code4funfiles/source/browse/trunk/palm-sdvt/tests/read_memo.lua?r=10&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-1021165447800539372?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/1021165447800539372/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2010/01/como-ler-o-memo-do-plam-com-plua.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/1021165447800539372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/1021165447800539372'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2010/01/como-ler-o-memo-do-plam-com-plua.html' title='Como ler o Memo do plam com Plua'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-8291591498112583719</id><published>2010-01-28T19:35:00.000-08:00</published><updated>2010-05-16T19:41:27.651-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Plua'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>How to read Palm Memo with Plua</title><content type='html'>Well, the first thing to know is that each memo register, each anotation (in palm) is not a distinct file, or another data base file. Each memo is a register in MemoDB, a default data base.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The Lua code is easy to understand, see it below. &lt;br /&gt;&lt;br /&gt;&lt;pre class="lua" name="code"&gt;-- open memos for read&lt;br /&gt;f,n = io.open("db:/MemoDB", "r")&lt;br /&gt;text = "";&lt;br /&gt;-- fetch all registers&lt;br /&gt;for i = 0,n-1,1 do&lt;br /&gt;f:openrec(i) -- open register&lt;br /&gt;line = f:read("*l") -- read first line of register&lt;br /&gt;if(line == "sd-vt") then -- if is a correct file that I need&lt;br /&gt;s = f:read("*a") -- read all content of memo register&lt;br /&gt;text = text .. s&lt;br /&gt;end&lt;br /&gt;end&lt;br /&gt;f:close()&lt;br /&gt;&lt;br /&gt;gui.control{type="field", lines=11, columns=30, text=text}&lt;br /&gt;&lt;br /&gt;gui.main()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Source code from here: &lt;a href="http://code.google.com/p/code4funfiles/source/browse/trunk/palm-sdvt/tests/read_memo.lua?r=10"&gt;http://code.google.com/p/code4funfiles/source/browse/trunk/palm-sdvt/tests/read_memo.lua?r=10&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-8291591498112583719?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/8291591498112583719/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2010/01/how-to-read-palm-memo-with-plua.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/8291591498112583719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/8291591498112583719'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2010/01/how-to-read-palm-memo-with-plua.html' title='How to read Palm Memo with Plua'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-3213579804673637364</id><published>2009-09-15T19:53:00.000-07:00</published><updated>2010-05-16T20:04:57.884-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='world of lua'/><category scheme='http://www.blogger.com/atom/ns#' term='Lua'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Lua group in Portugese</title><content type='html'>By Brazilian programmers was created, but the others programmers do not trust at home work, in the next moment, when the language is recognized outside, we have try get it back to home.&lt;br /&gt;&amp;nbsp; &lt;br /&gt;So, was created a a Brazilian Portuguese group about Lua (and their around world). The group are active, with good discussions. Only for follow or for join us, there is the link:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://groups.google.com/group/lua-br"&gt;http://groups.google.com/group/lua-br&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Greetings to the group, prosperity for all of us!&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-3213579804673637364?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/3213579804673637364/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/09/lua-group-in-portugese.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/3213579804673637364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/3213579804673637364'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/09/lua-group-in-portugese.html' title='Lua group in Portugese'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-4698331580340253428</id><published>2009-09-15T05:05:00.000-07:00</published><updated>2009-09-15T05:08:59.607-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Português'/><category scheme='http://www.blogger.com/atom/ns#' term='world of lua'/><category scheme='http://www.blogger.com/atom/ns#' term='Lua'/><title type='text'>Grupo de Lua em português</title><content type='html'>Os brasucas criam, os brasucas não valorizam, os de fora sim, aí a gente vê que é bom e tenta trazer de volta...&lt;br /&gt;&lt;br /&gt;Enfim foi criado um grupo sobre a linguagem Lua (e muitos dos seus entornos) em portugês. O grupo está bem ativo, com discussões interessantes. Só para acompanhar ou para participar, segue o link do grupo: &lt;a href="http://groups.google.com/group/lua-br"&gt;http://groups.google.com/group/lua-br&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Saudações ao grupo, e prosperidade a todos nós!&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-4698331580340253428?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/4698331580340253428/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/09/grupo-de-lua-em-portugues.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/4698331580340253428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/4698331580340253428'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/09/grupo-de-lua-em-portugues.html' title='Grupo de Lua em português'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-2520716215796241701</id><published>2009-07-20T16:48:00.000-07:00</published><updated>2009-07-20T16:55:23.599-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Plua'/><category scheme='http://www.blogger.com/atom/ns#' term='Português'/><title type='text'>Criada a WikiPlua</title><content type='html'>Olá, criei agora a &lt;a href="http://wikiplua.sourcedreams.com.br/"&gt;WikiPlua&lt;/a&gt; (&lt;a href="http://wikiplua.sourcedreams.com.br/"&gt;wikiplua.sourcedreams.com.br&lt;/a&gt;), uma wiki para os programadores Lua para dispositivos Palm OS.&lt;br /&gt;&lt;br /&gt;Espero que o pessoal da comunidade faça essa wiki crescer e ela realmente se torne um lugar útil para buscar referência e ajuda na linguagem Lua para Palm.&lt;br /&gt;&lt;br /&gt;Aqui no blog vou "especializar o foco", quando for algo não relativo a Plua, posto aqui normalmente, mas quando for relativo a Plua vou prineiro tentar adicionar esse material na wiki, depois aqui faço aqui um comentário mais superficial apontando para lá.&lt;br /&gt;&lt;br /&gt;Por hoje é isso  neste blog. Há, hoje é dia do amigo! Saudações a todos.&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-2520716215796241701?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/2520716215796241701/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/07/criada-wikiplua.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/2520716215796241701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/2520716215796241701'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/07/criada-wikiplua.html' title='Criada a WikiPlua'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-5931356099994919997</id><published>2009-06-27T08:15:00.000-07:00</published><updated>2009-06-27T10:06:56.064-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NCL'/><category scheme='http://www.blogger.com/atom/ns#' term='Português'/><category scheme='http://www.blogger.com/atom/ns#' term='digital tv'/><title type='text'>Curso de NCL dentro do FISL</title><content type='html'>Olá pessoal, estou fazendo um curso dentro do FISL, escrevo este post enquanto baixa o JRE para rodar as coisas aqui na maquina.&lt;br /&gt;&lt;br /&gt;Em breve alguma coisa  mais efetiva sobre TV digital, NCL e Lua no meio disso tudo.&lt;br /&gt;&lt;br /&gt;Por hora, sites recomendados:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.java.com/pt_BR/download/linux_manual.jsp"&gt;http://www.java.com/pt_BR/download/linux_manual.jsp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://clube.ncl.org.br/?q=node/45"&gt;http://clube.ncl.org.br/?q=node/45&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tvdigitalsocial.blogspot.com/"&gt;http://tvdigitalsocial.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Até mais ver.&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-5931356099994919997?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/5931356099994919997/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/06/curso-de-ncl-dentro-do-fisl.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/5931356099994919997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/5931356099994919997'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/06/curso-de-ncl-dentro-do-fisl.html' title='Curso de NCL dentro do FISL'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-2716343818207847621</id><published>2009-06-14T15:17:00.000-07:00</published><updated>2009-06-14T17:27:28.165-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='files'/><category scheme='http://www.blogger.com/atom/ns#' term='Plua'/><category scheme='http://www.blogger.com/atom/ns#' term='Português'/><title type='text'>Lendo e gravando dados com Plua em arquivos pdb (palm data base)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_MvDshKp6n3U/SjV-LGUoTWI/AAAAAAAAAZc/EONoCGCuW7M/s1600-h/simpleIO1.0.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 160px; height: 160px;" src="http://4.bp.blogspot.com/_MvDshKp6n3U/SjV-LGUoTWI/AAAAAAAAAZc/EONoCGCuW7M/s400/simpleIO1.0.png" alt="" id="BLOGGER_PHOTO_ID_5347318861713132898" border="0" /&gt;&lt;/a&gt;A alguns dias houve &lt;a href="http://www.nabble.com/My-Story-%2B-Small-Request-tt23954944.html#a23984797"&gt;um tópico interessante&lt;/a&gt; na lista de discussão sobre plua no yahoo groups (a lista é fechada, por isso passei um link alternativo).&lt;br /&gt;&lt;br /&gt;O sujeito Jimmy Joe Jack, disse que queria fazer algo para seu palm com plua, mas não tinha muito tempo para aprender e por isso não queria ler a &lt;a href="http://diversos.sourcedreams.com.br/plua/pluadoc.htm"&gt;documentação&lt;/a&gt; toda (que é pequena, mas longe de ser fácil), pediu que enviássemos alguns exemplos.&lt;br /&gt;&lt;br /&gt;Foi quando Berkant Atay respondeu, mandando um exemplo que fazia algo quando apertava um botão, e na sequecia mandou exemplos de como trabalhar com arquivos, stream e data bases.&lt;br /&gt;&lt;br /&gt;Aproveitei a deixa para também aprender como isso afinal funcionava (obrigado Berkant). Deixo agora neste post o que aprendi com meu primeiro exemplo gravando informações em arquivos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Fazendo a leitura de um arquivo de banco de dados&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Plua disponibiliza uma série de funções, veja na &lt;a href="http://diversos.sourcedreams.com.br/plua/pluadoc.htm"&gt;documentação&lt;/a&gt; lá onde diz "Database I/O functions". Vamos a um trecho de códigos que fica mais fácil.&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- open in read mode&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; file,NumRegs = &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 149, 255);"&gt;io.open&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"db:/AgesNames"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"r+"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- define a variable&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; returnData = {}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- Atention!in DB file, the index begin in 0 (zero) &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- but in table, array..the index begin in 1 (one)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;for&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; i=&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,NumRegs-&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- open data from index&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  file:openrec(i) &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- begin in zero&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- read this data&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  data = file:&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 149, 255);"&gt;read&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"*a"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  temp = bin.unpack(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"SB"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,data)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- add this data to returning variable&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  returnData[i+&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;] = temp[&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;2&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;]..&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"\t"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;..temp[&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; file:close()&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;Logo no início eu abro o arquivo com "r+" através do "protocolo" "db", disse que o nome de meu banco de dados é "AgesNames". Assim como em outras linguagens há modos de abrir aquivos. vejamos (tradução livre do manual):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;"r"&lt;/span&gt;: Abre para leitura. Se o arquivo não existe não é feito nada, apenas da erro.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;"r+"&lt;/span&gt;: abre/cria para leitura/escrita.      Se o arquivo já existe ele é preservado, caso contrário é criado. O conteúdo do arquivo é mantido.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;"w"&lt;/span&gt;: abre/cria para escrita.      Se o arquivo existe ele é truncado (o conteúdo dele é apagado), se não existe o arquivo é criado.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;"a"&lt;/span&gt;: abre/cria para escrita.      Se o arquivo existe ele é preservado, o ponteiro aponta para o fim do arquivo, se o arquivo não existe ele é criado.&lt;/li&gt;&lt;/ul&gt;Você deve ter notado que duas variáveis (file e NumRegs) é que recebem o io.open, isso porque Lua suporta atribuição (e retorno) múltipla. No caso io.open retorna o ponteiro para o arquivo (guardei em file) e número de registros/linhas naquele arquivo (guardei em NumRegs).&lt;br /&gt;&lt;br /&gt;Em seguida fazemos um laço da primeira a última linha de dados do arquivo. Atenção que o primeiro índice de um arquivo é 0 (zero), enquanto que as tables (arrays, vectors) em Lua iniciam no índice 1.&lt;br /&gt;&lt;br /&gt;Você deve ter notado que no "read" também tem uma letra, pois bem, veja o que o manual da Lua diz:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;"*n":&lt;/b&gt; lê um número; este é o único formato que retorna um número ao invés de uma cadeia. &lt;/li&gt;&lt;li&gt;&lt;b&gt;"*a":&lt;/b&gt; lê o arquivo inteiro, iniciando na posição corrente. Quando está no final do arquivo, retorna a cadeia vazia. &lt;/li&gt;&lt;li&gt;&lt;b&gt;"*l":&lt;/b&gt; lê a próxima linha (pulando o fim de linha), retornando &lt;b&gt;nil&lt;/b&gt; ao final do arquivo. Este é o formato padrão. &lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;em&gt;number&lt;/em&gt;:&lt;/b&gt; lê uma cadeia até este número de caracteres, retornando &lt;b&gt;nil&lt;/b&gt; ao final do arquivo. Se o número fornecido é zero, a função não lê nada e retorna uma cadeia vazia ou &lt;b&gt;nil&lt;/b&gt; quando está no fim do arquivo. &lt;/li&gt;&lt;/ul&gt;E o último e talvez mais importante detalhe na leitura de alguma informação. Como funciona esse "bin.unpack". Pois bem, o arquivo de dados é um arquivo binário, portanto ocupa menos espaço que um arquivo texto, como isso ocorre? Da mesma forma que em banco de dados, os dados são armazenados no seu tipo e não tudo como string (que ocupa mais bites). Então tanto na hora de ler como gravar devemos informar que tipo de dados é cada coluna.&lt;br /&gt;&lt;br /&gt;No caso deste programa temos duas colunas "name" e "age", o primeiro uma string e o segundo um número inteiro positivo. Por causa dessas duas colunas é que temos duas letras dentro do bin.unpack, uma letra dizendo que tipo de dados é cada coluna. Veja no manual da Plua o que diz de cada um dos tipos (tradução livre).&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;B=8 bits integer positivos e negativos;   &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;W=big endian 16 bits inteiros positivos e negativos;   &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;L=big endian 32 bits  inteiros positivos e negativos;   &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;F=big endian 32 bits float;   &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;D=big endian 64 bits double;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;S= String variável, termina com um ASCII null. &lt;/li&gt;&lt;/ul&gt;Bom, chegamos em um nível em que conforme sua estrutura de dados, você pode prever quanto espaço na memória um registro vai ocupar, e fazer projeções de quantos registros a memória do seu Palm vai suportar.&lt;br /&gt;&lt;br /&gt;A última parte do código, eu concateno as duas colunas de dados em uma, e armazeno então uma matriz em um vector, que depois vai ser usado como fonte de dados para uma gui.list.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Gravando em um arquivo&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Agora que você já sabe o que cada coisa significa, a gravação é fácil. Primeiro eu pego os dados dos meus campos da interface (gui.field), coloco isso em uma table (vector), dou um "bin.pack", aloco o espaço necessário para aqueles dados e mando gravar, e claro, fecho o arquivo.&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- retrive values from fields&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; name = gui.gettext(dataName) &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; age = gui.gettext(dataAge)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; dataToWrite = {name,age}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- open for write the data base file&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; file = &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 149, 255);"&gt;io.open&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"db:/AgesNames"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"w"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- encode, acording the data tyes&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; packed = bin.pack(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"SB"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,dataToWrite)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- how many size is this data?&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; index = file:createrec(&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 149, 255);"&gt;string.len&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(packed))&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- alloc this size on file&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; file:openrec(index)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- finaly  write &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; file:&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 149, 255);"&gt;write&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(packed)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- and close file&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; file:close()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;O desenho da interface, e como saber que o botão "add" foi pressionado&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Tenha bons costumes, sempre que inicia a desenhar uma tela, destrua o que já há, fica mais fácil de controlar. Em seguida mando limpar a tela.&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; gui.destroy()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; screen.clear()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; gui.title(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"Simple read and write"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; gui.nl();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; gui.label(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"Name:"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; dataName = gui.field(&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;10&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;20&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; gui.label(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"Age:"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; dataAge = gui.field(&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; gui.control{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 149, 255);"&gt;type&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"button"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, text=&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"Add"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, handler=saveData}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; gui.nl()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; data = &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 149, 255);"&gt;read&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; gui.list(&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;10&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;32&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,data) &lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;Digo qual é o título, vou uma linha para baixo (gui.nl) e adiciono as labels e os fields. O detalhe está no botão, em que associo ele a função "saveData" que é o código de gravação do logo acima.&lt;br /&gt;&lt;br /&gt;Nova linha, e a função que lê o banco de dados traz os dados em "data" que é atribuido a "gui.list". Quando um registro é gravado, perceba que eu chamo novamente a função que redesenha a interface e faz novamente então a leitura dos dados.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Código na íntegra abaixo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- this file write and read data using a palm db&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;function&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 149, 255);"&gt;read&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- open in read mode&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; file,NumRegs = &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 149, 255);"&gt;io.open&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"db:/AgesNames"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"r+"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- define a variable&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; returnData = {}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- Atention!in DB file, the index begin in 0 (zero) &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- but in table, array..the index begin in 1 (one)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;for&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; i=&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,NumRegs-&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- open data from index&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  file:openrec(i) &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- begin in zero&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- read this data&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  data = file:&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 149, 255);"&gt;read&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"*a"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  temp = bin.unpack(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"SB"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,data)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- add this data to returning variable&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  returnData[i+&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;] = temp[&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;2&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;]..&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"\t"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;..temp[&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; file:close()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- if are empty, return this information&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(returnData == &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;nil&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;) &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  returnData[&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;] = &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"No data writed"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;return&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; returnData&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;function&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; saveData(e, id, arg)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- retrive values from fields&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; name = gui.gettext(dataName) &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; age = gui.gettext(dataAge)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; dataToWrite = {name,age}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- open for write the data base file&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; file = &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 149, 255);"&gt;io.open&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"db:/AgesNames"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"w"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- encode, acording the data tyes&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; packed = bin.pack(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"SB"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,dataToWrite)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- how many size is this data?&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; index = file:createrec(&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 149, 255);"&gt;string.len&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(packed))&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- alloc this size on file&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; file:openrec(index)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- finaly  write &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; file:&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 149, 255);"&gt;write&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(packed)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- and close file&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; file:close()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; drawGui()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;function&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; drawGui()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; gui.destroy()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; screen.clear()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; gui.title(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"Simple read and write"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; gui.nl();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; gui.label(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"Name:"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; dataName = gui.field(&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;10&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;20&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; gui.label(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"Age:"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; dataAge = gui.field(&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; gui.control{&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 149, 255);"&gt;type&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"button"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, text=&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"Add"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, handler=saveData}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; gui.nl()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; data = &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 149, 255);"&gt;read&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; gui.list(&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;10&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;32&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,data) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;drawGui()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;gui.main()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;É isso amigos, até a próxima, agradescimento especial a Berkant Atay, ilustre desconhecido.&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-2716343818207847621?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/2716343818207847621/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/06/lendo-e-gravando-dados-com-plua-em.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/2716343818207847621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/2716343818207847621'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/06/lendo-e-gravando-dados-com-plua-em.html' title='Lendo e gravando dados com Plua em arquivos pdb (palm data base)'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_MvDshKp6n3U/SjV-LGUoTWI/AAAAAAAAAZc/EONoCGCuW7M/s72-c/simpleIO1.0.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-6474596250795865513</id><published>2009-06-14T14:40:00.000-07:00</published><updated>2010-06-06T16:56:22.154-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='files'/><category scheme='http://www.blogger.com/atom/ns#' term='Plua'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Reading and writing data in pdb files (palm data base)</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_MvDshKp6n3U/SjV-LGUoTWI/AAAAAAAAAZc/EONoCGCuW7M/s1600-h/simpleIO1.0.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5347318861713132898" src="http://4.bp.blogspot.com/_MvDshKp6n3U/SjV-LGUoTWI/AAAAAAAAAZc/EONoCGCuW7M/s400/simpleIO1.0.png" style="cursor: pointer; float: left; height: 160px; margin: 0pt 10px 10px 0pt; width: 160px;" /&gt;&lt;/a&gt;At few days was &lt;a href="http://www.nabble.com/My-Story-%2B-Small-Request-tt23954944.html#a23984797"&gt;a interesting topic&lt;/a&gt; at discussion list (Yahoo! Groups). The list is closed, because this I was passed a alternative link.&lt;br /&gt;&lt;br /&gt;A person, Jimmy Joe Jack, was say that will make something for your palm with pLua, but there have no time to study and read the all &lt;a href="http://diversos.sourcedreams.com.br/plua/pluadoc.htm"&gt;documentation&lt;/a&gt;&amp;nbsp; (it is small, but not simple) and was asked by examples.&lt;br /&gt;&lt;br /&gt;At this moment Berkant Atay was reply, sending some code that made something when a button are pressed, in sequence was sending how to work with files, streams and data bases.&lt;br /&gt;&lt;br /&gt;Using the tips of e-mail list, I'm tried to do it too. The is my learned tips from firsts tests.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;Reading a file from data base&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Plua provide various functions, take a look in &lt;a href="http://diversos.sourcedreams.com.br/plua/pluadoc.htm"&gt;documentation&lt;/a&gt; in "Database I/O functions" section. Let's go a some code overview. &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- open in read mode&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; file,NumRegs = &lt;/span&gt;&lt;span style="color: #0095ff; font-weight: bold;"&gt;io.open&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"db:/AgesNames"&lt;/span&gt;&lt;span style="color: black;"&gt;, &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"r+"&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- define a variable&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; returnData = {}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- Atention!in DB file, the index begin in 0 (zero) &lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- but in table, array..the index begin in 1 (one)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;for&lt;/span&gt;&lt;span style="color: black;"&gt; i=&lt;/span&gt;&lt;span style="color: teal;"&gt;0&lt;/span&gt;&lt;span style="color: black;"&gt;,NumRegs-&lt;/span&gt;&lt;span style="color: teal;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;  &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- open data from index&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;  file:openrec(i) &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- begin in zero&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;  &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- read this data&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;  data = file:&lt;/span&gt;&lt;span style="color: #0095ff; font-weight: bold;"&gt;read&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"*a"&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;  temp = bin.unpack(&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"SB"&lt;/span&gt;&lt;span style="color: black;"&gt;,data)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;  &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- add this data to returning variable&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;  returnData[i+&lt;/span&gt;&lt;span style="color: teal;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;] = temp[&lt;/span&gt;&lt;span style="color: teal;"&gt;2&lt;/span&gt;&lt;span style="color: black;"&gt;]..&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"\t"&lt;/span&gt;&lt;span style="color: black;"&gt;..temp[&lt;/span&gt;&lt;span style="color: teal;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; file:close()&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;At the begin I open the file in "r+" mode of "db"&amp;nbsp; protocol, and my database is "AgesNames". So as the others programming languages, are some ways to open the files:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;"r"&lt;/span&gt;: Open to read. If the file not exists, do nothing, only show error.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;"r+"&lt;/span&gt;: Open/create to read and write. If file not exist, try create it. If exist, it is preserved, do not trunk the file.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;"w"&lt;/span&gt;: open/create for write. If file exist, it will be trunked, if not, it will be created.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;"a"&lt;/span&gt;: open/create to write.      If&amp;nbsp; file exist it is preserved, the pointer is at the end of file. If file not exist, the file is created.&lt;/li&gt;&lt;/ul&gt;You probably was seems the two variables (&lt;i&gt;file &lt;/i&gt;and &lt;i&gt;NumRegs&lt;/i&gt;) that recive &lt;i&gt;io.open&lt;/i&gt;. That is because Lua support&amp;nbsp; multiple attribution.&amp;nbsp; In this case, &lt;i&gt;io.open&lt;/i&gt; return the pointer to the file (stored in &lt;i&gt;file&lt;/i&gt;) and the number of registers/lines in this file (stored in &lt;i&gt;NumRegs&lt;/i&gt;).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In the next, I make a loop of begin at the end of file. Attention! The index of files begin in 0 (zero), and tables (arrays, vectors) begin with value 1 (one).&lt;br /&gt;&lt;br /&gt;Note that in &lt;i&gt;read&lt;/i&gt;, appear other character. According with manual of Lua this mean:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;"*n":&lt;/b&gt; Read a number, this is a unique format that return a number and not a sequence if chars (string). &lt;/li&gt;&lt;li&gt;&lt;b&gt;"*a":&lt;/b&gt; Read totally of the file, start at the current position. When is at end of file, return a empty string. &lt;/li&gt;&lt;li&gt;&lt;b&gt;"*l":&lt;/b&gt; Read the next line (skip the end of line) return &lt;b&gt;nil&lt;/b&gt; when is at the end. That is a default pattern. &lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;i&gt;number&lt;/i&gt;:&lt;/b&gt; Read a string until the number of characters, return &lt;b&gt;&lt;i&gt;nil &lt;/i&gt;&lt;/b&gt;at the end of file. If 0 (zero) is passed, the function do not read anything and return a empty string or &lt;b&gt;nil&lt;/b&gt; when is at the end of file. &lt;/li&gt;&lt;/ul&gt;The last important detail is the how work the "bin.unpack". Well, the data base is a binary file, so use less disk space as a text plain file. This work same a real data base, the data is stored using their particular type, not all as string (use more bites). So, in the moment of write and read, you need pass what is the type of a particular data field.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;In this program, are two fields, "name" and "age", the first is string, and the next is unsigned integer. According of the fields data type is the characters inside bin.unpack, one character to represent each data type of fields that will be retrieved. Take a look in manual.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;B=8 bits integers, positive and negatives;   &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;W=big endian 16 bits integers, positives and negatives;   &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;L=big endian 32 bits  integers, positives and negatives;   &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;F=big endian 32 bits float;   &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;D=big endian 64 bits double;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;S= String variable, end with ASCII null. &lt;/li&gt;&lt;/ul&gt;Good! Now according yours data types you can identify what data structure you need, and can calculate how disk space is needed to store the data. &lt;br /&gt;&lt;br /&gt;The last part of code, I concatenate the two fields in one (merge it), and store in one matrix. In the next will be used to show the data with gui.list component.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;Writing in a file&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 100%;"&gt;Now when you know what mean the characters, the write process is easy. First I get the data of my interface components (gui.field), and put it in a table variable (vector), run "bin.pack" inside this data, reserve a memory space for this data and call a write function, after this, I close a file of course.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 100%;"&gt;&lt;/span&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- retrive values from fields&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; name = gui.gettext(dataName) &lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; age = gui.gettext(dataAge)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; dataToWrite = {name,age}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- open for write the data base file&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; file = &lt;/span&gt;&lt;span style="color: #0095ff; font-weight: bold;"&gt;io.open&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"db:/AgesNames"&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"w"&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- encode, acording the data tyes&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; packed = bin.pack(&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"SB"&lt;/span&gt;&lt;span style="color: black;"&gt;,dataToWrite)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- how many size is this data?&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; index = file:createrec(&lt;/span&gt;&lt;span style="color: #0095ff; font-weight: bold;"&gt;string.len&lt;/span&gt;&lt;span style="color: black;"&gt;(packed))&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- alloc this size on file&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; file:openrec(index)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- finaly  write &lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; file:&lt;/span&gt;&lt;span style="color: #0095ff; font-weight: bold;"&gt;write&lt;/span&gt;&lt;span style="color: black;"&gt;(packed)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- and close file&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; file:close()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;The draw interface, and how know if "add" button was pressed&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;Before begin, clear all on the screen, is more easy to control. Well, the code is simple and auto explain itself.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: black;"&gt; gui.destroy()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; screen.clear()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; gui.title(&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"Simple read and write"&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; gui.nl();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; gui.label(&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"Name:"&lt;/span&gt;&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; dataName = gui.field(&lt;/span&gt;&lt;span style="color: teal;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;span style="color: teal;"&gt;10&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;span style="color: teal;"&gt;20&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; gui.label(&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"Age:"&lt;/span&gt;&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; dataAge = gui.field(&lt;/span&gt;&lt;span style="color: teal;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;span style="color: teal;"&gt;3&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;span style="color: teal;"&gt;3&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; gui.control{&lt;/span&gt;&lt;span style="color: #0095ff; font-weight: bold;"&gt;type&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"button"&lt;/span&gt;&lt;span style="color: black;"&gt;, text=&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"Add"&lt;/span&gt;&lt;span style="color: black;"&gt;, handler=saveData}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; gui.nl()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; data = &lt;/span&gt;&lt;span style="color: #0095ff; font-weight: bold;"&gt;read&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; gui.list(&lt;/span&gt;&lt;span style="color: teal;"&gt;10&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;span style="color: teal;"&gt;32&lt;/span&gt;&lt;span style="color: black;"&gt;,data) &lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-size: 100%;"&gt;The detail is in the button "add" when in this is associated the function "saveData".&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-weight: bold;"&gt;Complete code below:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- this file write and read data using a palm db&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;function&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #0095ff; font-weight: bold;"&gt;read&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- open in read mode&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; file,NumRegs = &lt;/span&gt;&lt;span style="color: #0095ff; font-weight: bold;"&gt;io.open&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"db:/AgesNames"&lt;/span&gt;&lt;span style="color: black;"&gt;, &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"r+"&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- define a variable&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; returnData = {}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- Atention!in DB file, the index begin in 0 (zero) &lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- but in table, array..the index begin in 1 (one)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;for&lt;/span&gt;&lt;span style="color: black;"&gt; i=&lt;/span&gt;&lt;span style="color: teal;"&gt;0&lt;/span&gt;&lt;span style="color: black;"&gt;,NumRegs-&lt;/span&gt;&lt;span style="color: teal;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;  &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- open data from index&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;  file:openrec(i) &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- begin in zero&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;  &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- read this data&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;  data = file:&lt;/span&gt;&lt;span style="color: #0095ff; font-weight: bold;"&gt;read&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"*a"&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;  temp = bin.unpack(&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"SB"&lt;/span&gt;&lt;span style="color: black;"&gt;,data)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;  &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- add this data to returning variable&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;  returnData[i+&lt;/span&gt;&lt;span style="color: teal;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;] = temp[&lt;/span&gt;&lt;span style="color: teal;"&gt;2&lt;/span&gt;&lt;span style="color: black;"&gt;]..&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"\t"&lt;/span&gt;&lt;span style="color: black;"&gt;..temp[&lt;/span&gt;&lt;span style="color: teal;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; file:close()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- if are empty, return this information&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="color: black;"&gt;(returnData == &lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;nil&lt;/span&gt;&lt;span style="color: black;"&gt;) &lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;then&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;  returnData[&lt;/span&gt;&lt;span style="color: teal;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;] = &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"No data writed"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;return&lt;/span&gt;&lt;span style="color: black;"&gt; returnData&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;function&lt;/span&gt;&lt;span style="color: black;"&gt; saveData(e, id, arg)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- retrive values from fields&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; name = gui.gettext(dataName) &lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; age = gui.gettext(dataAge)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; dataToWrite = {name,age}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- open for write the data base file&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; file = &lt;/span&gt;&lt;span style="color: #0095ff; font-weight: bold;"&gt;io.open&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"db:/AgesNames"&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"w"&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- encode, acording the data tyes&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; packed = bin.pack(&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"SB"&lt;/span&gt;&lt;span style="color: black;"&gt;,dataToWrite)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- how many size is this data?&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; index = file:createrec(&lt;/span&gt;&lt;span style="color: #0095ff; font-weight: bold;"&gt;string.len&lt;/span&gt;&lt;span style="color: black;"&gt;(packed))&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- alloc this size on file&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; file:openrec(index)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- finaly  write &lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; file:&lt;/span&gt;&lt;span style="color: #0095ff; font-weight: bold;"&gt;write&lt;/span&gt;&lt;span style="color: black;"&gt;(packed)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- and close file&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; file:close()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; drawGui()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;function&lt;/span&gt;&lt;span style="color: black;"&gt; drawGui()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; gui.destroy()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; screen.clear()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; gui.title(&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"Simple read and write"&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; gui.nl();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; gui.label(&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"Name:"&lt;/span&gt;&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; dataName = gui.field(&lt;/span&gt;&lt;span style="color: teal;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;span style="color: teal;"&gt;10&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;span style="color: teal;"&gt;20&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; gui.label(&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"Age:"&lt;/span&gt;&lt;span style="color: black;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; dataAge = gui.field(&lt;/span&gt;&lt;span style="color: teal;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;span style="color: teal;"&gt;3&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;span style="color: teal;"&gt;3&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; gui.control{&lt;/span&gt;&lt;span style="color: #0095ff; font-weight: bold;"&gt;type&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"button"&lt;/span&gt;&lt;span style="color: black;"&gt;, text=&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"Add"&lt;/span&gt;&lt;span style="color: black;"&gt;, handler=saveData}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; gui.nl()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; data = &lt;/span&gt;&lt;span style="color: #0095ff; font-weight: bold;"&gt;read&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; gui.list(&lt;/span&gt;&lt;span style="color: teal;"&gt;10&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;span style="color: teal;"&gt;32&lt;/span&gt;&lt;span style="color: black;"&gt;,data) &lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;drawGui()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;gui.main()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;It is&amp;nbsp; friends! Until next! And special thanks to Berkant Atay, &lt;span class="short_text" id="result_box"&gt;&lt;span title=""&gt;illustrious unknown&lt;/span&gt;&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-6474596250795865513?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/6474596250795865513/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/06/reading-and-writing-data-in-pdb-files.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/6474596250795865513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/6474596250795865513'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/06/reading-and-writing-data-in-pdb-files.html' title='Reading and writing data in pdb files (palm data base)'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_MvDshKp6n3U/SjV-LGUoTWI/AAAAAAAAAZc/EONoCGCuW7M/s72-c/simpleIO1.0.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-7874873754755177995</id><published>2009-06-14T09:48:00.001-07:00</published><updated>2009-06-14T10:26:58.081-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Português'/><category scheme='http://www.blogger.com/atom/ns#' term='Lua'/><title type='text'>Comentários de várias linhas em Lua</title><content type='html'>Esse texto é uma dica rápida, como fazer comentários multi-linha em Lua e linguagens derivadas. Motivo? Na &lt;a href="http://www.lua.org/manual/5.1/pt/manual.html#2.1"&gt;documentação&lt;/a&gt; não tem exemplos, apenas fala como  é (ver ultimo parágrafo do item 2.1 ).&lt;br /&gt;&lt;br /&gt;Os comentários multi-linha iniciam com --[[ e fecham com ]] .&lt;br /&gt;&lt;pre&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- this program is a simple test, and i'm a single line comment&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 149, 255);"&gt;print&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"this is normal line"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;--[[&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(128, 128, 128);"&gt;function&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;span style="color: rgb(153, 153, 153);"&gt;opencb(reply)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;     &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(128, 128, 128);"&gt;for&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt; k, v &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(128, 128, 128);"&gt;in&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(128, 128, 128);"&gt;pairs&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;(reply) &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(128, 128, 128);"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;        &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(128, 128, 128);"&gt;print&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;(k, v)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;     &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(128, 128, 128);"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(128, 128, 128);"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;]]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 149, 255);"&gt;print&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"the book is on the table"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;Lembro que na edição  1, 2 e 3 da revista &lt;a href="http://revista.espiritolivre.org/"&gt;Espírito livre&lt;/a&gt;, tem artigos sobre Lua que são um ótimo início se você quiser também aprender.&lt;br /&gt;&lt;br /&gt;Os dois colchetes ( [[ ]] ) também servem para atribuir um bloco de string a uma variável sem se preocupar com aspas simples ou duplas. veja:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_MvDshKp6n3U/SjUx3jp2-lI/AAAAAAAAAZM/mB9Mr9DTc7o/s1600-h/lua_code_example.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: left; cursor: pointer; width: 400px; height: 85px;" src="http://4.bp.blogspot.com/_MvDshKp6n3U/SjUx3jp2-lI/AAAAAAAAAZM/mB9Mr9DTc7o/s400/lua_code_example.png" alt="" id="BLOGGER_PHOTO_ID_5347234963105708626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Por hoje é isso. Boa semana!&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-7874873754755177995?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/7874873754755177995/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/06/comentarios-de-varias-linhas-em-lua.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/7874873754755177995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/7874873754755177995'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/06/comentarios-de-varias-linhas-em-lua.html' title='Comentários de várias linhas em Lua'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_MvDshKp6n3U/SjUx3jp2-lI/AAAAAAAAAZM/mB9Mr9DTc7o/s72-c/lua_code_example.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-2423620167974190409</id><published>2009-06-14T09:48:00.000-07:00</published><updated>2009-06-14T10:53:50.231-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lua'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Multi-line Comments in Lua</title><content type='html'>This is a short tip, how to make multi-lines comments in Lua programming language. Why? Because &lt;a href="http://www.lua.org/manual/5.1/manual.html#2.1"&gt;documentation&lt;/a&gt; not have examples of this (see the last paragraph of 2.1 section ).&lt;br /&gt;&lt;br /&gt;The multi-lines comments begin with "&lt;span style="font-weight: bold;"&gt;--[[&lt;/span&gt;" (double hyphen, double square brackets) and end with "&lt;span style="font-weight: bold;"&gt;]]&lt;/span&gt;" (double square brackets) .&lt;br /&gt;&lt;pre&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- this program is a simple test, and i'm a single line comment&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 149, 255);"&gt;print&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"this is normal line"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;--[[&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(128, 128, 128);"&gt;function&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;span style="color: rgb(153, 153, 153);"&gt;opencb(reply)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;     &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(128, 128, 128);"&gt;for&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt; k, v &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(128, 128, 128);"&gt;in&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(128, 128, 128);"&gt;pairs&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;(reply) &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(128, 128, 128);"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;        &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(128, 128, 128);"&gt;print&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;(k, v)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;     &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(128, 128, 128);"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(128, 128, 128);"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;]]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 149, 255);"&gt;print&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"the book is on the table"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;A good beginner material is a Free Spirit Magazine (&lt;a href="http://revista.espiritolivre.org/"&gt;Espírito livre&lt;/a&gt;, in portiguese), in theirs first 3 editions have articles about Lua.&lt;br /&gt;&lt;br /&gt;The double brackets ( [[ ]] ) is used too for set long strings blocs to a variable, see the example code.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_MvDshKp6n3U/SjUx3jp2-lI/AAAAAAAAAZM/mB9Mr9DTc7o/s1600-h/lua_code_example.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: left; cursor: pointer; width: 400px; height: 85px;" src="http://4.bp.blogspot.com/_MvDshKp6n3U/SjUx3jp2-lI/AAAAAAAAAZM/mB9Mr9DTc7o/s400/lua_code_example.png" alt="" id="BLOGGER_PHOTO_ID_5347234963105708626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Today is this. Good week!&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-2423620167974190409?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/2423620167974190409/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/06/multi-line-comments-in-lua.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/2423620167974190409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/2423620167974190409'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/06/multi-line-comments-in-lua.html' title='Multi-line Comments in Lua'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_MvDshKp6n3U/SjUx3jp2-lI/AAAAAAAAAZM/mB9Mr9DTc7o/s72-c/lua_code_example.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-6980675934563299383</id><published>2009-06-12T07:27:00.000-07:00</published><updated>2009-09-15T05:15:40.922-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Plua'/><category scheme='http://www.blogger.com/atom/ns#' term='Português'/><category scheme='http://www.blogger.com/atom/ns#' term='aLua'/><title type='text'>Backup web: Site oficial pLua e aLua</title><content type='html'>Olá a alguns dias eu tive problemas para acessar o site oficial da &lt;span style="font-weight: bold;"&gt;aLua&lt;/span&gt;: &lt;a href="http://alua.inf.puc-rio.br/"&gt;http://alua.inf.puc-rio.br&lt;/a&gt;, meu trabalho parou por isso. Assim, hoje eu fiz uma cópia do site.&lt;br /&gt;&lt;br /&gt;Agora, tem uma cópia do site hospedada aqui: &lt;a href="http://diversos.sourcedreams.com.br/alua/"&gt;http://diversos.sourcedreams.com.br/alua/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Eu copiei também o site oficial da &lt;span style="font-weight: bold;"&gt;Plua 2.0&lt;/span&gt;.&lt;br /&gt;Site oficial : &lt;a href="http://meusite.uai.com.br/%7Emmand/plua/plua.htm"&gt;http://meusite.uai.com.br/~mmand/plua/plua.htm&lt;/a&gt;&lt;br /&gt;Minha cópia : &lt;a href="http://diversos.sourcedreams.com.br/plua/"&gt;http://diversos.sourcedreams.com.br/plua/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bem, se um destes sites estiver off-line, espero que minha cópia ajude.&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-6980675934563299383?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/6980675934563299383/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/06/backup-web-site-oficial-lua-e-alua.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/6980675934563299383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/6980675934563299383'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/06/backup-web-site-oficial-lua-e-alua.html' title='Backup web: Site oficial pLua e aLua'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-3325217771662774127</id><published>2009-06-12T07:26:00.000-07:00</published><updated>2009-06-12T07:27:24.077-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Plua'/><category scheme='http://www.blogger.com/atom/ns#' term='aLua'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Backup web: Site Plua 2.0 official documentation and aLua</title><content type='html'>Hello, at few days I had troubles to access the &lt;span style="font-weight: bold;"&gt;aLua&lt;/span&gt; official site: &lt;a href="http://alua.inf.puc-rio.br/"&gt;http://alua.inf.puc-rio.br&lt;/a&gt;, my work stop because this. So today I made myself copy of site.&lt;br /&gt;&lt;br /&gt;Now, are one copy of site hosted here: &lt;a href="http://diversos.sourcedreams.com.br/alua/"&gt;http://diversos.sourcedreams.com.br/alua/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I has copy too the &lt;span style="font-weight: bold;"&gt;Plua 2.0&lt;/span&gt; website, the official site for this language and documentation.&lt;br /&gt;Official site: &lt;a href="http://meusite.uai.com.br/%7Emmand/plua/plua.htm"&gt;http://meusite.uai.com.br/~mmand/plua/plua.htm&lt;/a&gt;&lt;br /&gt;My copy: &lt;a href="http://diversos.sourcedreams.com.br/plua/"&gt;http://diversos.sourcedreams.com.br/plua/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Well, if one of theirs sites is off-line, I hope that my copy help you.&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-3325217771662774127?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/3325217771662774127/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/06/backup-web-site-plua-20-official.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/3325217771662774127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/3325217771662774127'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/06/backup-web-site-plua-20-official.html' title='Backup web: Site Plua 2.0 official documentation and aLua'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-7783356089868672943</id><published>2009-05-31T10:46:00.000-07:00</published><updated>2009-05-31T11:12:58.160-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Plua'/><category scheme='http://www.blogger.com/atom/ns#' term='Português'/><title type='text'>Solução para Data grid com 2 ou mais colunas em Plua</title><content type='html'>Olá novamente! Eu resolvi parcialmente meu &lt;a href="http://vonluawelt.blogspot.com/2009/05/problema-com-data-grid-que-tenha-mais.html"&gt;problema&lt;/a&gt; adaptando uma &lt;a href="http://www.nabble.com/list-with-2-colums-td23249169.html#a23603582"&gt;sugestão&lt;/a&gt; postada por &lt;a href="http://www.nyvig.dk/meda/profil-x.asp?Init=map&amp;amp;Print=0"&gt;Morten Agerlin Petersen&lt;/a&gt; na lista de e-mail oficial do Plua. Mas eu não usei "gui.field", eu usei multiplos "gui.list", um para cada coluna  de dados passados para a função.&lt;br /&gt;&lt;br /&gt;Olhe o código desenvolvido (não é o melhor código... mas funciona)&lt;br /&gt;&lt;pre&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- tool to easy display multi colums data using Plua&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;function&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; eventsHandler(e, id, arg)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;--print("e"..e.." id"..id.."arg"..arg)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- incredible bad code here !&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- dont make this in your house please :)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; gui.setstate(&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1800&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,arg) &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; gui.setstate(&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1801&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,arg) &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; gui.setstate(&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1802&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,arg) &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;function&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; datagrid(data,lines,colums,&lt;wbr&gt;height,widthColums)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; d={}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; x = &lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;0&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;for&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; j=&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, colums &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&lt;script&gt;&lt;!-- D(["mb","do\u003c/span\u003e\u003cbr\u003e\n\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e  \u003c/span\u003e\u003cspan style\u003d\"font-weight:bold;color:rgb(0, 0, 0)\"\u003efor\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e i\u003d\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e1\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e, lines \u003c/span\u003e\u003cspan style\u003d\"font-weight:bold;color:rgb(0, 0, 0)\"\u003edo\u003c/span\u003e\u003cbr\u003e\n\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e   d[i] \u003d data[i][j]\u003c/span\u003e\u003cbr\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e  \u003c/span\u003e\u003cspan style\u003d\"font-weight:bold;color:rgb(0, 0, 0)\"\u003eend\u003c/span\u003e\u003cbr\u003e\u003cbr\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e  screen.moveto(x)\u003c/span\u003e\u003cbr\u003e\n\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e  x \u003d x + (widthColums[j]*\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e5\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e) +\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e1\u003c/span\u003e\u003cbr\u003e\u003cbr\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e  list \u003d gui.list(height,widthColums[j]\u003cWBR\u003e,d)\u003c/span\u003e\u003cbr\u003e\n\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e  gui.sethandler(list,\u003cWBR\u003eeventsHandler)\u003c/span\u003e\u003cbr\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e \u003c/span\u003e\u003cspan style\u003d\"font-weight:bold;color:rgb(0, 0, 0)\"\u003eend\u003c/span\u003e\u003cbr\u003e\u003cbr\u003e\u003cspan style\u003d\"font-weight:bold;color:rgb(0, 0, 0)\"\u003eend\u003c/span\u003e\u003cbr\u003e\n\u003cbr\u003e\u003cspan style\u003d\"font-style:italic;color:rgb(128, 128, 128)\"\u003e-- testing ------------------------------\u003cWBR\u003e------\u003c/span\u003e\u003cbr\u003e\u003cbr\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003emydata \u003d {}\u003c/span\u003e\u003cbr\u003e\u003cspan style\u003d\"font-weight:bold;color:rgb(0, 0, 0)\"\u003efor\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e a\u003d\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e1\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e,\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e30\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e \u003c/span\u003e\u003cspan style\u003d\"font-weight:bold;color:rgb(0, 0, 0)\"\u003edo\u003c/span\u003e\u003cbr\u003e\n\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e mydata[a] \u003d {}\u003c/span\u003e\u003cbr\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e mydata[a][\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e1\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e] \u003d a;\u003c/span\u003e\u003cbr\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e mydata[a][\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e2\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e] \u003d \u003c/span\u003e\u003cspan style\u003d\"color:rgb(221, 0, 0)\"\u003e\u0026quot;description \u0026quot;\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e",1] );  //--&gt;&lt;/script&gt;do&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;for&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; i=&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, lines &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   d[i] = data[i][j]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  screen.moveto(x)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  x = x + (widthColums[j]*&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;5&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;) +&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  list = gui.list(height,widthColums[j]&lt;wbr&gt;,d)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  gui.sethandler(list,&lt;wbr&gt;eventsHandler)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- testing ------------------------------&lt;wbr&gt;------&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;mydata = {}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;for&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; a=&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;30&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; mydata[a] = {}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; mydata[a][&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;] = a;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; mydata[a][&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;2&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;] = &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"description "&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;script&gt;&lt;!-- D(["mb","..a;\u003c/span\u003e\u003cbr\u003e\n\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e mydata[a][\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e3\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e] \u003d \u003c/span\u003e\u003cspan style\u003d\"color:rgb(221, 0, 0)\"\u003e\u0026quot;value \u0026quot;\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e..a;\u003c/span\u003e\u003cbr\u003e\n\u003cspan style\u003d\"font-weight:bold;color:rgb(0, 0, 0)\"\u003eend\u003c/span\u003e\u003cbr\u003e\u003cbr\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003escreen.moveto(\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e0\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e,\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e30\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e)\u003c/span\u003e\u003cbr\u003e\n\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003egui.title(\u003c/span\u003e\u003cspan style\u003d\"color:rgb(221, 0, 0)\"\u003e\u0026quot;Data grid with \u0026gt;\u003d 2 colums\u0026quot;\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e)\u003c/span\u003e\u003cbr\u003e\u003cbr\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003ewidthColums \u003d {}\u003c/span\u003e\u003cbr\u003e\n\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003ewidthColums[\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e1\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e] \u003d \u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e5\u003c/span\u003e\u003cbr\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003ewidthColums[\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e2\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e] \u003d \u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e18\u003c/span\u003e\u003cbr\u003e\n\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003ewidthColums[\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e3\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e] \u003d \u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e8\u003c/span\u003e\u003cbr\u003e\u003cbr\u003e\u003cspan style\u003d\"font-style:italic;color:rgb(128, 128, 128)\"\u003e-- data, lines,colums, height, width for each colum of matrix\u003c/span\u003e\u003cbr\u003e\n\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003edatagrid(mydata,\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e30\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e,\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e3\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e,\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e12\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e,\u003cWBR\u003ewidthColums)\u003c/span\u003e\u003cbr\u003e\n\u003cbr\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003egui.main()\u003c/span\u003e\u003cbr\u003e\u003cbr\u003e\u003c/pre\u003eSo it works fine, but I not like the number of \u0026quot;for\u0026quot; loops, that is so \u0026quot;hard\u0026quot; to fragile device process... that\u0026#39;s work, but I don\u0026#39;t like this.",1] );  //--&gt;&lt;/script&gt;..a;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; mydata[a][&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;] = &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"value "&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;..a;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;screen.moveto(&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;30&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;gui.title(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"Data grid with &gt;= 2 colums"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;widthColums = {}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;widthColums[&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;] = &lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;5&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;widthColums[&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;2&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;] = &lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;18&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;widthColums[&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;] = &lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;8&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;-- data, lines,colums, height, width for each colum of matrix&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;datagrid(mydata,&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;30&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;12&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;wbr&gt;widthColums)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;gui.main()&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;Neste exemplo eu crio 3 colunas (de listas) na tela, a posição de cada uma é ajustada para parecer que é "um só"  componente.&lt;br /&gt;&lt;br /&gt;Novamente, esta não é a melhor solução, mas vou trabalhando com o que tenho.&lt;br /&gt;&lt;br /&gt;Obrigado por tudo amigos.&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-7783356089868672943?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/7783356089868672943/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/05/solucao-para-data-grid-com-2-ou-mais.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/7783356089868672943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/7783356089868672943'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/05/solucao-para-data-grid-com-2-ou-mais.html' title='Solução para Data grid com 2 ou mais colunas em Plua'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-3796479576484865006</id><published>2009-05-20T13:31:00.000-07:00</published><updated>2010-05-17T14:36:13.005-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Plua'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Solution for Data grid with 2 or more colums solution in Plua</title><content type='html'>Hello again! I has partially solve &lt;a href="http://vonluawelt.blogspot.com/2009/05/sdmm-data-grid-list-problem.html"&gt;my problem&lt;/a&gt; adapting a &lt;a href="http://www.nabble.com/list-with-2-colums-td23249169.html#a23603582"&gt;&lt;span style="text-decoration: underline;"&gt;suggestion&lt;/span&gt;&lt;/a&gt; posted by &lt;a href="http://www.nyvig.dk/meda/profil-x.asp?Init=map&amp;amp;Print=1"&gt;Morten Agerlin Petersen&lt;/a&gt; on Plua official mail-list. But I not use "gui.field", I use multiple "gui.list", one for each data colum in the data passed to function.&lt;br /&gt;&lt;br /&gt;See here the code developed (isn't a better code... but work)&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- tool to easy display multi colums data using Plua&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;function&lt;/span&gt;&lt;span style="color: black;"&gt; eventsHandler(e, id, arg)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;--print("e"..e.." id"..id.."arg"..arg)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- incredible bad code here !&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- dont make this in your house please :)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; gui.setstate(&lt;/span&gt;&lt;span style="color: teal;"&gt;1800&lt;/span&gt;&lt;span style="color: black;"&gt;,arg) &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; gui.setstate(&lt;/span&gt;&lt;span style="color: teal;"&gt;1801&lt;/span&gt;&lt;span style="color: black;"&gt;,arg) &lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; gui.setstate(&lt;/span&gt;&lt;span style="color: teal;"&gt;1802&lt;/span&gt;&lt;span style="color: black;"&gt;,arg) &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;function&lt;/span&gt;&lt;span style="color: black;"&gt; datagrid(data,lines,colums,&lt;wbr&gt;&lt;/wbr&gt;height,widthColums)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; d={}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; x = &lt;/span&gt;&lt;span style="color: teal;"&gt;0&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;for&lt;/span&gt;&lt;span style="color: black;"&gt; j=&lt;/span&gt;&lt;span style="color: teal;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;, colums &lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;&lt;script&gt;&lt;br /&gt;&lt;!-- D(["mb","do\u003c/span\u003e\u003cbr\u003e\n\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e  \u003c/span\u003e\u003cspan style\u003d\"font-weight:bold;color:rgb(0, 0, 0)\"\u003efor\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e i\u003d\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e1\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e, lines \u003c/span\u003e\u003cspan style\u003d\"font-weight:bold;color:rgb(0, 0, 0)\"\u003edo\u003c/span\u003e\u003cbr\u003e\n\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e   d[i] \u003d data[i][j]\u003c/span\u003e\u003cbr\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e  \u003c/span\u003e\u003cspan style\u003d\"font-weight:bold;color:rgb(0, 0, 0)\"\u003eend\u003c/span\u003e\u003cbr\u003e\u003cbr\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e  screen.moveto(x)\u003c/span\u003e\u003cbr\u003e\n\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e  x \u003d x + (widthColums[j]*\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e5\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e) +\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e1\u003c/span\u003e\u003cbr\u003e\u003cbr\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e  list \u003d gui.list(height,widthColums[j]\u003cWBR\u003e,d)\u003c/span\u003e\u003cbr\u003e\n\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e  gui.sethandler(list,\u003cWBR\u003eeventsHandler)\u003c/span\u003e\u003cbr\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e \u003c/span\u003e\u003cspan style\u003d\"font-weight:bold;color:rgb(0, 0, 0)\"\u003eend\u003c/span\u003e\u003cbr\u003e\u003cbr\u003e\u003cspan style\u003d\"font-weight:bold;color:rgb(0, 0, 0)\"\u003eend\u003c/span\u003e\u003cbr\u003e\n\u003cbr\u003e\u003cspan style\u003d\"font-style:italic;color:rgb(128, 128, 128)\"\u003e-- testing ------------------------------\u003cWBR\u003e------\u003c/span\u003e\u003cbr\u003e\u003cbr\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003emydata \u003d {}\u003c/span\u003e\u003cbr\u003e\u003cspan style\u003d\"font-weight:bold;color:rgb(0, 0, 0)\"\u003efor\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e a\u003d\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e1\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e,\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e30\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e \u003c/span\u003e\u003cspan style\u003d\"font-weight:bold;color:rgb(0, 0, 0)\"\u003edo\u003c/span\u003e\u003cbr\u003e\n\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e mydata[a] \u003d {}\u003c/span\u003e\u003cbr\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e mydata[a][\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e1\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e] \u003d a;\u003c/span\u003e\u003cbr\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e mydata[a][\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e2\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e] \u003d \u003c/span\u003e\u003cspan style\u003d\"color:rgb(221, 0, 0)\"\u003e\u0026quot;description \u0026quot;\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e",1] );  //--&gt;&lt;br /&gt;&lt;/script&gt;do&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;  &lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;for&lt;/span&gt;&lt;span style="color: black;"&gt; i=&lt;/span&gt;&lt;span style="color: teal;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;, lines &lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;   d[i] = data[i][j]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;  &lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;  screen.moveto(x)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;  x = x + (widthColums[j]*&lt;/span&gt;&lt;span style="color: teal;"&gt;5&lt;/span&gt;&lt;span style="color: black;"&gt;) +&lt;/span&gt;&lt;span style="color: teal;"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;  list = gui.list(height,widthColums[j]&lt;wbr&gt;&lt;/wbr&gt;,d)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;  gui.sethandler(list,&lt;wbr&gt;&lt;/wbr&gt;eventsHandler)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- testing ------------------------------&lt;wbr&gt;&lt;/wbr&gt;------&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;mydata = {}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;for&lt;/span&gt;&lt;span style="color: black;"&gt; a=&lt;/span&gt;&lt;span style="color: teal;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;span style="color: teal;"&gt;30&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;do&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; mydata[a] = {}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; mydata[a][&lt;/span&gt;&lt;span style="color: teal;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;] = a;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; mydata[a][&lt;/span&gt;&lt;span style="color: teal;"&gt;2&lt;/span&gt;&lt;span style="color: black;"&gt;] = &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"description "&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;script&gt;&lt;br /&gt;&lt;!-- D(["mb","..a;\u003c/span\u003e\u003cbr\u003e\n\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e mydata[a][\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e3\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e] \u003d \u003c/span\u003e\u003cspan style\u003d\"color:rgb(221, 0, 0)\"\u003e\u0026quot;value \u0026quot;\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e..a;\u003c/span\u003e\u003cbr\u003e\n\u003cspan style\u003d\"font-weight:bold;color:rgb(0, 0, 0)\"\u003eend\u003c/span\u003e\u003cbr\u003e\u003cbr\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003escreen.moveto(\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e0\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e,\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e30\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e)\u003c/span\u003e\u003cbr\u003e\n\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003egui.title(\u003c/span\u003e\u003cspan style\u003d\"color:rgb(221, 0, 0)\"\u003e\u0026quot;Data grid with \u0026gt;\u003d 2 colums\u0026quot;\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e)\u003c/span\u003e\u003cbr\u003e\u003cbr\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003ewidthColums \u003d {}\u003c/span\u003e\u003cbr\u003e\n\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003ewidthColums[\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e1\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e] \u003d \u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e5\u003c/span\u003e\u003cbr\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003ewidthColums[\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e2\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e] \u003d \u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e18\u003c/span\u003e\u003cbr\u003e\n\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003ewidthColums[\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e3\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e] \u003d \u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e8\u003c/span\u003e\u003cbr\u003e\u003cbr\u003e\u003cspan style\u003d\"font-style:italic;color:rgb(128, 128, 128)\"\u003e-- data, lines,colums, height, width for each colum of matrix\u003c/span\u003e\u003cbr\u003e\n\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003edatagrid(mydata,\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e30\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e,\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e3\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e,\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 128, 128)\"\u003e12\u003c/span\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003e,\u003cWBR\u003ewidthColums)\u003c/span\u003e\u003cbr\u003e\n\u003cbr\u003e\u003cspan style\u003d\"color:rgb(0, 0, 0)\"\u003egui.main()\u003c/span\u003e\u003cbr\u003e\u003cbr\u003e\u003c/pre\u003eSo it works fine, but I not like the number of \u0026quot;for\u0026quot; loops, that is so \u0026quot;hard\u0026quot; to fragile device process... that\u0026#39;s work, but I don\u0026#39;t like this.",1] );  //--&gt;&lt;br /&gt;&lt;/script&gt;..a;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt; mydata[a][&lt;/span&gt;&lt;span style="color: teal;"&gt;3&lt;/span&gt;&lt;span style="color: black;"&gt;] = &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"value "&lt;/span&gt;&lt;span style="color: black;"&gt;..a;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black; font-weight: bold;"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;screen.moveto(&lt;/span&gt;&lt;span style="color: teal;"&gt;0&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;span style="color: teal;"&gt;30&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;gui.title(&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"Data grid with &amp;gt;= 2 colums"&lt;/span&gt;&lt;span style="color: black;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;widthColums = {}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;widthColums[&lt;/span&gt;&lt;span style="color: teal;"&gt;1&lt;/span&gt;&lt;span style="color: black;"&gt;] = &lt;/span&gt;&lt;span style="color: teal;"&gt;5&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;widthColums[&lt;/span&gt;&lt;span style="color: teal;"&gt;2&lt;/span&gt;&lt;span style="color: black;"&gt;] = &lt;/span&gt;&lt;span style="color: teal;"&gt;18&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;widthColums[&lt;/span&gt;&lt;span style="color: teal;"&gt;3&lt;/span&gt;&lt;span style="color: black;"&gt;] = &lt;/span&gt;&lt;span style="color: teal;"&gt;8&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: grey; font-style: italic;"&gt;-- data, lines,colums, height, width for each colum of matrix&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;datagrid(mydata,&lt;/span&gt;&lt;span style="color: teal;"&gt;30&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;span style="color: teal;"&gt;3&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;span style="color: teal;"&gt;12&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;wbr&gt;&lt;/wbr&gt;widthColums)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;gui.main()&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;This example create a 3 colums (of lists) in the screen, the position of each is adjusted to appear as if it were a single component.&lt;br /&gt;&lt;br /&gt;Again it is not a best but I will work with what I have.&lt;br /&gt;&lt;br /&gt;Thanks for all friends.&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-3796479576484865006?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/3796479576484865006/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/05/data-grid-with-2-or-more-colums.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/3796479576484865006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/3796479576484865006'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/05/data-grid-with-2-or-more-colums.html' title='Solution for Data grid with 2 or more colums solution in Plua'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-5109678870674645863</id><published>2009-05-20T13:27:00.001-07:00</published><updated>2009-05-31T10:44:31.231-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Plua'/><category scheme='http://www.blogger.com/atom/ns#' term='Português'/><title type='text'>Problema com data grid que tenha mais de uma coluna de dados</title><content type='html'>Olá pessoal!&lt;br /&gt;&lt;br /&gt;O Source Dreams money manager está tendo um pequeno problema agora. Eu não sei como mostrar a tela uma tabela contenmdo mais de uma coluna.&lt;br /&gt;&lt;br /&gt;Veja a figura...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_MvDshKp6n3U/Sf-7fKMoRMI/AAAAAAAAAQk/znm_6XXb7K4/s1600-h/telas.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 182px;" src="http://2.bp.blogspot.com/_MvDshKp6n3U/Sf-7fKMoRMI/AAAAAAAAAQk/znm_6XXb7K4/s320/telas.png" alt="" id="BLOGGER_PHOTO_ID_5332186627817620674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Sim, minha solução é fazer uma única coluna, juntando dois campos em um, separando os dados com um "\t" (tab). Mas essa não é a solução perfeita, eu sei disso.&lt;br /&gt;&lt;br /&gt;Na documentação do componente "gui.list" não tem nada sobre isso, eu tentei usar passando uma tabela bidimensional, mas não funciona.&lt;br /&gt;&lt;br /&gt;Meu código atual (funciona):&lt;br /&gt;&lt;pre&gt;registers ={}&lt;br /&gt;registers[1] = "description \t value"&lt;br /&gt;registers[2]= "description \t value"&lt;br /&gt;registers[3] = "description \t value"&lt;br /&gt;gui.control{type="list", lines=11, columns=31, list=registers}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;O código da possível solução (não funciona):&lt;br /&gt;&lt;pre&gt;registers ={}&lt;br /&gt;registers[1]= {}&lt;br /&gt;registers[1][1]= "description here"&lt;br /&gt;registers[1][2] = "32"&lt;br /&gt;&lt;br /&gt;registers[2]={}&lt;br /&gt;registers[2][1] = "description 2"&lt;br /&gt;registers[2][2] = "35"&lt;br /&gt;&lt;br /&gt;registers[3]={}&lt;br /&gt;registers[3][1] = "The last item"&lt;br /&gt;registers[3][2] = "50"&lt;br /&gt;&lt;br /&gt;gui.control{type="list", lines=11, columns=31, list=registers}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Bem, neste momento eu vou continuar desenvolvendo usando a solução de juntar dois campos em um (primeiro código). Se você souber uma maneira melhor de resolver... avise por favor.&lt;br /&gt;&lt;br /&gt;Tchau!&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-5109678870674645863?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/5109678870674645863/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/05/problema-com-data-grid-que-tenha-mais.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/5109678870674645863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/5109678870674645863'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/05/problema-com-data-grid-que-tenha-mais.html' title='Problema com data grid que tenha mais de uma coluna de dados'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_MvDshKp6n3U/Sf-7fKMoRMI/AAAAAAAAAQk/znm_6XXb7K4/s72-c/telas.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-6925334124199723581</id><published>2009-05-04T21:06:00.001-07:00</published><updated>2009-05-20T13:30:44.162-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Plua'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Data grid, list problem</title><content type='html'>Hello people!&lt;br /&gt;&lt;br /&gt;The Source Dreams money manager have a little problem now. I not know why display in screen a data with 2 colums (or more).&lt;br /&gt;&lt;br /&gt;See the picture...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_MvDshKp6n3U/Sf-7fKMoRMI/AAAAAAAAAQk/znm_6XXb7K4/s1600-h/telas.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 182px;" src="http://2.bp.blogspot.com/_MvDshKp6n3U/Sf-7fKMoRMI/AAAAAAAAAQk/znm_6XXb7K4/s320/telas.png" alt="" id="BLOGGER_PHOTO_ID_5332186627817620674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Yeah, my "solution" is make a single colum and merge the 2 fields in a single string with "\t" (tab) character. But is not a perfect solution... I Know this.&lt;br /&gt;&lt;br /&gt;In "gui.list" component of plua haven't nothing about this, I try make that using a multi-directional "table", a array, but isn't.&lt;br /&gt;&lt;br /&gt;My actual code (example):&lt;br /&gt;&lt;pre&gt;registers ={}&lt;br /&gt;registers[1] = "description \t value"&lt;br /&gt;registers[2]= "description \t value"&lt;br /&gt;registers[3] = "description \t value"&lt;br /&gt;gui.control{type="list", lines=11, columns=31, list=registers}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The possible solution code (not work):&lt;br /&gt;&lt;pre&gt;registers ={}&lt;br /&gt;registers[1]= {}&lt;br /&gt;registers[1][1]= "description here"&lt;br /&gt;registers[1][2] = "32"&lt;br /&gt;&lt;br /&gt;registers[2]={}&lt;br /&gt;registers[2][1] = "description 2"&lt;br /&gt;registers[2][2] = "35"&lt;br /&gt;&lt;br /&gt;registers[3]={}&lt;br /&gt;registers[3][1] = "The last item"&lt;br /&gt;registers[3][2] = "50"&lt;br /&gt;&lt;br /&gt;gui.control{type="list", lines=11, columns=31, list=registers}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Well, in this moment I will develop using my solution (merge 2 fileds in one). If you know how solve... please report.&lt;br /&gt;&lt;br /&gt;Bye!&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-6925334124199723581?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/6925334124199723581/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/05/sdmm-data-grid-list-problem.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/6925334124199723581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/6925334124199723581'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/05/sdmm-data-grid-list-problem.html' title='Data grid, list problem'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_MvDshKp6n3U/Sf-7fKMoRMI/AAAAAAAAAQk/znm_6XXb7K4/s72-c/telas.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-3823611074397295826</id><published>2009-04-27T14:32:00.000-07:00</published><updated>2010-05-17T15:05:48.389-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NCL'/><category scheme='http://www.blogger.com/atom/ns#' term='digital tv'/><category scheme='http://www.blogger.com/atom/ns#' term='Ginga'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Digital TV:  Ginga-NCL - Starting a programming</title><content type='html'>In the last &lt;a href="http://www.fisl.org.br/"&gt;FISL&lt;/a&gt; (9.0) this subject was maked a big noise,  but it is my first FISL and I am PHP programmer, PHP Magazine team... and Rasmus Lerdorf  was present!&lt;br /&gt;&lt;br /&gt;Why "Ginga" is important to me? &lt;br /&gt;&lt;br /&gt;Well, one year latter finally I was discovered! Lua is a programming language used in Brazilian Digital TV model... I will explain.&lt;br /&gt;&lt;br /&gt;The Digital TV provide interactive interface, so need a programming language to do it.&lt;br /&gt;&lt;br /&gt;Lua was wrote in C ANSI, so it is portable to any device hardware, and because this singular characteristic was adopted as Brazilian pattern to Digital TV. Yes, Java can do it too, and the receptors will be understand Java and Lua, but for&amp;nbsp; mobile/portable devices Lua is mandatory, Java not.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"Ginga-NCL is a multimedia presentation environment for declarative applications written in NCL and its scripting language, Lua." (http://www.ginga.org.br/index_en.html)&lt;br /&gt;&lt;br /&gt;At iMasters site (amazing... that is a site where i'm learned the first PHP lessons) was started a dedicated area to Digital TV, at now, are some articles:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Lua: Introduction&lt;/span&gt;&lt;br /&gt;&lt;a href="http://imasters.uol.com.br/artigo/11743"&gt;http://imasters.uol.com.br/artigo/11743&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Comunication beetwen NLC and Lua language&lt;/span&gt;&lt;br /&gt;&lt;a href="http://imasters.uol.com.br/artigo/12080"&gt;http://imasters.uol.com.br/artigo/12080&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;NClua liberaly&lt;/span&gt;&lt;br /&gt;&lt;a href="http://imasters.uol.com.br/artigo/12291"&gt;http://imasters.uol.com.br/artigo/12291&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In Code Line site have too material:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Developing aplications for digital tv (short introduction)&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.linhadecodigo.com.br/Artigo.aspx?id=2009"&gt;http://www.linhadecodigo.com.br/Artigo.aspx?id=2009&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Developing aplications for digital tv  - Part 2&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.linhadecodigo.com.br/Artigo.aspx?id=2219"&gt;http://www.linhadecodigo.com.br/Artigo.aspx?id=2219&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Developing aplications for digital tv  - Part 3&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.linhadecodigo.com.br/Artigo.aspx?id=2220"&gt;http://www.linhadecodigo.com.br/Artigo.aspx?id=2220&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Site of NCL&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.ncl.org.br/"&gt;http://www.ncl.org.br&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Game under NCL&lt;/span&gt;&lt;br /&gt;&lt;a href="http://clube.ncl.org.br/?q=node/28"&gt;http://clube.ncl.org.br/?q=node/28&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;More about NCL&lt;/span&gt;&lt;br /&gt;&lt;a href="http://clube.ncl.org.br/?q=node/27"&gt;http://clube.ncl.org.br/?q=node/27&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Well, I will make my tests here, and one text in this blog about this.&lt;br /&gt;&lt;br /&gt;Thanks Google!&lt;br /&gt;&lt;br /&gt;Stay here in this &lt;a href="http://vonluawelt.blogspot.com/feeds/posts/default?alt=rss"&gt;feed&lt;/a&gt;, in this &lt;a href="http://vonluawelt.blogspot.com/"&gt;blog&lt;/a&gt;...  and until the next program :)&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-3823611074397295826?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/3823611074397295826/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2010/05/digital-tv-ginga-ncl-starting.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/3823611074397295826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/3823611074397295826'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2010/05/digital-tv-ginga-ncl-starting.html' title='Digital TV:  Ginga-NCL - Starting a programming'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-5345097628908834038</id><published>2009-04-27T07:04:00.000-07:00</published><updated>2009-04-27T07:59:25.271-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NCL'/><category scheme='http://www.blogger.com/atom/ns#' term='Português'/><category scheme='http://www.blogger.com/atom/ns#' term='digital tv'/><category scheme='http://www.blogger.com/atom/ns#' term='Ginga'/><title type='text'>Digital TV:  Ginga-NCL - Iniciando a programar</title><content type='html'>Na última &lt;a href="http://www.fisl.org.br/"&gt;FISL&lt;/a&gt; (9.0) esse assunto fez muito barulho, mas como foi minha primeira feira eu não dei atenção, afinal eu sou programador PHP,  parte da equipe da PHP Magazine e tudo mais... e Rasmus Lerdorf estava na feira!!!! Porque eu daria atenção a uma coisa com o nome "Ginga"?&lt;br /&gt;&lt;br /&gt;Pois bem, quase um ano depois e finalmente a ficha caiu! Graças a estar envolvido agora com programação Lua, e desde a primeira olhada na wikipedia saber que "Lua" era usado na "tv digital brasileira".&lt;br /&gt;&lt;br /&gt;Vou explicar melhor: A TV digital permite interatividade, logo precisa de uma linguagem de programação para prover isso.  Lua por ser escrito em código C ANSI é portável provavelmente para "qualquer" hardware e por isso foi adotada como o padrão Brasileiro. Há sim, Java também é, os receptores terão que entender Java e Lua, porém os receptores para dispositivos portáteis não obrigatoriamnete Java, apenas Lua.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"Ginga-NCL é um ambiente de apresentação multimídia para aplicações declarativas escritas em NCL e sua linguagem de script Lua." (www.ginga.org.br)&lt;br /&gt;&lt;br /&gt;No iMasters (que coisa não... também foi este o site que li os primeiros artigos sobre PHP) iniciou uma área dedicada a TV Digital, até agora temos alguns artigos:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Lua: Introdução&lt;/span&gt;&lt;br /&gt;&lt;a href="http://imasters.uol.com.br/artigo/11743"&gt;http://imasters.uol.com.br/artigo/11743&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Comunicação entre as linguagens NCL e Lua&lt;/span&gt;&lt;br /&gt;&lt;a href="http://imasters.uol.com.br/artigo/12080"&gt;http://imasters.uol.com.br/artigo/12080&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Biblioteca NClua&lt;/span&gt;&lt;br /&gt;&lt;a href="http://imasters.uol.com.br/artigo/12291"&gt;http://imasters.uol.com.br/artigo/12291&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;No site Linha de Código também tem um material interessante:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Desenvolvimento de Aplicativos para TV Digital (pequena introdução)&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.linhadecodigo.com.br/Artigo.aspx?id=2009"&gt;http://www.linhadecodigo.com.br/Artigo.aspx?id=2009&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Desenvolvendo Aplicativos para TV Digital - Parte 2&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.linhadecodigo.com.br/Artigo.aspx?id=2219"&gt;http://www.linhadecodigo.com.br/Artigo.aspx?id=2219&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Desenvolvimento de Aplicativos para TV Digital - Parte 3&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.linhadecodigo.com.br/Artigo.aspx?id=2220"&gt;http://www.linhadecodigo.com.br/Artigo.aspx?id=2220&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Site da NCL&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.ncl.org.br"&gt;http://www.ncl.org.br&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Já teve um pessoal que fez um jogo&lt;/span&gt;&lt;br /&gt;&lt;a href="http://clube.ncl.org.br/?q=node/28"&gt;http://clube.ncl.org.br/?q=node/28&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Para quem quer aprender mais sobre NCL&lt;/span&gt;&lt;br /&gt;&lt;a href="http://clube.ncl.org.br/?q=node/27"&gt;http://clube.ncl.org.br/?q=node/27&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bom, vou fazer minhas experiências, em breve um post resumindo todos esses links acima e meus primeiros resultados.&lt;br /&gt;&lt;br /&gt;Obrigado Google!&lt;br /&gt;&lt;br /&gt;Fique ligado neste mesmo &lt;a href="http://vonluawelt.blogspot.com/feeds/posts/default?alt=rss"&gt;feed&lt;/a&gt;, neste mesmo &lt;a href="http://vonluawelt.blogspot.com/"&gt;blog&lt;/a&gt;...  e até o próximo programa :)&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-5345097628908834038?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/5345097628908834038/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/04/digital-tv-ginga-ncl-iniciando.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/5345097628908834038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/5345097628908834038'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/04/digital-tv-ginga-ncl-iniciando.html' title='Digital TV:  Ginga-NCL - Iniciando a programar'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-6513837568667221109</id><published>2009-04-27T07:02:00.000-07:00</published><updated>2009-05-02T13:46:51.931-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SDmm'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>SDmm - Environment Development</title><content type='html'>Hi friends!&lt;br /&gt;&lt;br /&gt;This post is to show how I stay programming the SDmm. In the picture my "IDE".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_MvDshKp6n3U/SfTTiQdFanI/AAAAAAAAAP4/Ys7TvWjH_yM/s1600-h/developer_ide.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 200px;" src="http://1.bp.blogspot.com/_MvDshKp6n3U/SfTTiQdFanI/AAAAAAAAAP4/Ys7TvWjH_yM/s320/developer_ide.png" alt="" id="BLOGGER_PHOTO_ID_5329116844572109426" border="0" /&gt;&lt;/a&gt;The essential characteristics:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1 - SO Linux -&lt;/span&gt; I'm using Mandriva 2009 Power Pack, 32 bits. Yes, have a compiler for windows, and the Notepad++ is better that vim... but the problem: only  two modes to transfer the compiled code to palm. The first is using Infra Red adapter, but is slow... very slow. The second is using usb cable and HotSync software, but here, the software synchronize all files of my palm!!!! I no have patience to this!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2 - Amarok - &lt;/span&gt;See the in the left and top on my screen... a blue icon of Amarok 1.4 (the 2.0 is a big polluted interface), in this moment, I'm  listening "Rammsten - Du Hast". For me, program without music is the same as live without air, not exist!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3 - Lua and Plua manual -&lt;/span&gt;  I know little of this language, for me is natural program using PHP, C or Java syntax... Lua have small differences, haven't other mode... the manual must be ever opened.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4 - Konsole or gnome-terminal -&lt;/span&gt; One vim opened in each terminal with a file of program. In the last tab one shell script to compile and other to send compiled code to palm device.&lt;br /&gt;&lt;br /&gt;Better explain the last paragraph, I dont know how compile  Lua/Plua program when their have more as one code-file, otherwise, if all program are be wrote in a single file the source would disorganized. I make a single file to each "software layer", have one file to manager user interface, other to signals, calculus, business rules ...before compile, the shell script merge all files in one, now I can compile (see compile.sh for details).&lt;br /&gt;&lt;br /&gt;File &lt;span style="font-weight: bold;"&gt;compile.sh&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# delete a file&lt;br /&gt;rm -f compile.lua&lt;br /&gt;&lt;br /&gt;# merge all files in a single file&lt;br /&gt;cat events.lua &gt; compile.lua&lt;br /&gt;cat util.lua &gt;&gt; compile.lua&lt;br /&gt;cat gui.lua &gt;&gt; compile.lua&lt;br /&gt;cat mm.lua &gt;&gt; compile.lua&lt;br /&gt;cat main.lua &gt;&gt; compile.lua&lt;br /&gt;&lt;br /&gt;# compile a programm&lt;br /&gt;./plua2c -o sdmm.prc -name SDmm compile.lua&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Well, now is easy to program, when I will compile is only execute "./compile.sh".&lt;br /&gt;&lt;br /&gt;Bye until the next translated text :)&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-6513837568667221109?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/6513837568667221109/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/04/sdmm-environment-development.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/6513837568667221109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/6513837568667221109'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/04/sdmm-environment-development.html' title='SDmm - Environment Development'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_MvDshKp6n3U/SfTTiQdFanI/AAAAAAAAAP4/Ys7TvWjH_yM/s72-c/developer_ide.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-3934026095637523789</id><published>2009-04-26T14:22:00.001-07:00</published><updated>2009-04-26T15:03:42.175-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Português'/><category scheme='http://www.blogger.com/atom/ns#' term='SDmm'/><title type='text'>SDmm - Ambiente de desenvolvimento</title><content type='html'>Olá amigos.&lt;br /&gt;&lt;br /&gt;Este post é para mostrar como eu estou programando o SDmm.  Abaixo minha "IDE".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_MvDshKp6n3U/SfTTiQdFanI/AAAAAAAAAP4/Ys7TvWjH_yM/s1600-h/developer_ide.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 200px;" src="http://1.bp.blogspot.com/_MvDshKp6n3U/SfTTiQdFanI/AAAAAAAAAP4/Ys7TvWjH_yM/s320/developer_ide.png" alt="" id="BLOGGER_PHOTO_ID_5329116844572109426" border="0" /&gt;&lt;/a&gt;Vamos as características indispensáveis:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1 - SO Linux -&lt;/span&gt; No meu caso Mandriva 2009 Power Pack, 32 bits. Embora tenha o compilador Plua para win, e o Notepad++ seja até melhor que o vim... existm duas formas de passar o arquivo compilado (.prc) para o Palm, a primeira é por Infra Red, que demora um pouco e tem que estar alinhando o Palm com o adaptador USB, a segunda forma é pelo HotSync da Palm mesmo, mas aí demora demais porque em vez dele apenas enviar para o Palm o arquivo, ele sincroniza todos os dados ... não paciência para isso!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2 - Amarok - &lt;/span&gt;Vejam que no canto direito superior tem o ícone azul do Amarok 1.4 (o 2.0 é pesado e tem uma interface muito poluída), neste momento está rodando "Rammsten - Du Hast". Para mim programar sem música é como viver sem respirar, não existe!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3 - Manual Lua e Plua -&lt;/span&gt; Como sei muito pouco ainda dessa linguagem, estou acostumado com sintaxe PHP, C, Java ... e Lua é um tanto diferente ... não tem jeito, manual sempre aberto.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4 - Konsole ou gnome-terminal -&lt;/span&gt; Um vim em cada aba aberto com cada arquivo do programa. Na última aba um shell script que manda compilar, e outro que envia para o Palm o arquivo compilado.&lt;br /&gt;&lt;br /&gt;Explicando melhor este último item, não sei como compilar um program em Lua/Plua que tem mais de um arquivo fonte. Porém se todo o SDmm fosse escrito em um arquivo ficaria uma grande bagunça. Criei então um arquivo para cada "camada de software" do programa, tem um que cuida dos "signals" entre a interface e usuário, tem um que desenha a interface, tem outro que só faz os cálculos, tem outro que trabalha com a persistência dos dados ... enfim. Antes de compilar por shell script junto todos eles em um arquivo só e compilo! Fácil não!&lt;br /&gt;&lt;br /&gt;Aqruivo &lt;span style="font-weight: bold;"&gt;compile.sh&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# delete a file&lt;br /&gt;rm -f compile.lua&lt;br /&gt;&lt;br /&gt;# merge all files in a single file&lt;br /&gt;cat events.lua &gt; compile.lua&lt;br /&gt;cat util.lua &gt;&gt; compile.lua&lt;br /&gt;cat gui.lua &gt;&gt; compile.lua&lt;br /&gt;cat mm.lua &gt;&gt; compile.lua&lt;br /&gt;cat main.lua &gt;&gt; compile.lua&lt;br /&gt;&lt;br /&gt;# compile a programm&lt;br /&gt;./plua2c -o sdmm.prc -name SDmm compile.lua&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Bom, assim fica fácil de programar, toda vez que quero compilar basta executar "./compile.sh".&lt;br /&gt;&lt;br /&gt;É isso, até mais.&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-3934026095637523789?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/3934026095637523789/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/04/sdmm-ambiente-de-desenvolvimento.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/3934026095637523789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/3934026095637523789'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/04/sdmm-ambiente-de-desenvolvimento.html' title='SDmm - Ambiente de desenvolvimento'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_MvDshKp6n3U/SfTTiQdFanI/AAAAAAAAAP4/Ys7TvWjH_yM/s72-c/developer_ide.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-4694512888869586172</id><published>2009-04-26T14:17:00.000-07:00</published><updated>2009-05-01T20:31:57.221-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='world of lua'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>Espírito Livre Magazine: Turn to Lua - Lázaro Reinã</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://revista.espiritolivre.org/wp-content/themes/epsilon/cache/REL001_Capa.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 300px; height: 400px;" src="http://revista.espiritolivre.org/wp-content/themes/epsilon/cache/REL001_Capa.jpg" alt="" border="0" /&gt;&lt;/a&gt;The &lt;a href="http://www.revista.espiritolivre.org/"&gt;Espírito Livre&lt;/a&gt; magazine in their &lt;a href="http://www.revista.espiritolivre.org/?p=79"&gt;first edition&lt;/a&gt; have a great article about Lua programming Language, that is wrote by  Lázaro Reinã.&lt;br /&gt;&lt;br /&gt;The magazine is a free PDF online publication.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;My sucess wishes for the project!&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-4694512888869586172?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/4694512888869586172/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/04/espirito-livre-magazine-turn-to-lua.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/4694512888869586172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/4694512888869586172'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/04/espirito-livre-magazine-turn-to-lua.html' title='Espírito Livre Magazine: Turn to Lua - Lázaro Reinã'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-5914567492164538748</id><published>2009-04-19T09:20:00.000-07:00</published><updated>2009-04-19T10:45:55.707-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Português'/><category scheme='http://www.blogger.com/atom/ns#' term='world of lua'/><title type='text'>Revista Espírito Livre: Virado para Lua - Lázaro Reinã</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://revista.espiritolivre.org/wp-content/themes/epsilon/cache/REL001_Capa.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 300px; height: 400px;" src="http://revista.espiritolivre.org/wp-content/themes/epsilon/cache/REL001_Capa.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A revista &lt;a href="http://www.revista.espiritolivre.org/"&gt;Espírito Livre&lt;/a&gt; em sua&lt;a href="http://www.revista.espiritolivre.org/?p=79"&gt; primeira edição&lt;/a&gt; tem um artigo imperdível sobre a linguagem de programação LUA, artigo este escrito por Lázaro Reinã.&lt;br /&gt;&lt;br /&gt;A revista é uma publicação online em PDF.&lt;br /&gt;&lt;br /&gt;Além de LUA (que é de interesse neste blog) a revista destaca o novo paradigma de computação nas nuvens.&lt;br /&gt;&lt;br /&gt;Meus desejos de sucesso ao projeto e não deixe de conferir.&lt;br /&gt;&lt;br /&gt;Até mais amigos.&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-5914567492164538748?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/5914567492164538748/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/04/revista-espirito-livre-virado-para-lua.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/5914567492164538748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/5914567492164538748'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/04/revista-espirito-livre-virado-para-lua.html' title='Revista Espírito Livre: Virado para Lua - Lázaro Reinã'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-1171595892583259179</id><published>2009-03-15T16:39:00.000-07:00</published><updated>2010-05-17T14:08:39.898-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SDmm'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>SDmm - Now is official, and in Google Code</title><content type='html'>Hi friends! This post is only to say that SDmm is not stopped!&lt;br /&gt;&lt;br /&gt;Today I create a project in Google Code, and in other moment I will send the source code.&lt;br /&gt;&lt;br /&gt;Well, this a &lt;a href="http://code.google.com/p/code4funfiles/"&gt;link for the project&lt;/a&gt;, it is GPL 2.0 license.&lt;br /&gt;&lt;br /&gt;See you after.&lt;br /&gt;&lt;br /&gt;SDmm in Google Code: http://code.google.com/p/code4funfiles/&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-1171595892583259179?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/1171595892583259179/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/03/sdmm-now-is-official-and-in-google-code.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/1171595892583259179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/1171595892583259179'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/03/sdmm-now-is-official-and-in-google-code.html' title='SDmm - Now is official, and in Google Code'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-4111677772047710358</id><published>2009-03-15T16:34:00.000-07:00</published><updated>2010-05-17T14:09:37.215-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Português'/><category scheme='http://www.blogger.com/atom/ns#' term='SDmm'/><title type='text'>SDmm - Agora oficial, e no google code</title><content type='html'>Olá amigos, este post é apenas para noticiar que o SDmm tem firmes planos de continuar.&lt;br /&gt;&lt;br /&gt;Hoje criei um projeto no google code, e em breve estarei colocando o código fonte lá.&lt;br /&gt;&lt;br /&gt;De momento, segue o &lt;a href="http://code.google.com/p/code4funfiles/"&gt;link para o projeto&lt;/a&gt;  que está sob licença GPL 2.0.&lt;br /&gt;&lt;br /&gt;Até a próxima.&lt;br /&gt;&lt;br /&gt;SDmm no google code: http://code.google.com/p/code4funfiles/&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-4111677772047710358?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/4111677772047710358/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/03/sdmm-agora-oficial-e-no-google-code.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/4111677772047710358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/4111677772047710358'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/03/sdmm-agora-oficial-e-no-google-code.html' title='SDmm - Agora oficial, e no google code'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-8896804471975563542</id><published>2009-03-15T16:24:00.000-07:00</published><updated>2009-03-16T07:27:19.677-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SDmm'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>SDmm - Software Project: Palm analyse Application</title><content type='html'>In the first analyse,  are not be possible permutation inter accounts, that because one account are be classifiead at debit or credit, but in the same accout I have inputs and outputs, that my "bank account". began to be confused.&lt;br /&gt;&lt;br /&gt;If no are this classification, is all right. If you think in data bases, the sistem is now basicly 2 tables:&lt;br /&gt;&lt;br /&gt;types&lt;br /&gt;*  cod_type (integer value)&lt;br /&gt;type_description (varchar)&lt;br /&gt;active (char, T or F - true or false)&lt;br /&gt;&lt;br /&gt;registers&lt;br /&gt;* cod_register (integer value)&lt;br /&gt;- cod_type (integer value, foreign key)&lt;br /&gt;data_register (today date)&lt;br /&gt;description (varchar)&lt;br /&gt;value (decimal, float value)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_MvDshKp6n3U/Sb2sDhUuK0I/AAAAAAAAANk/CnwiqbdNCEE/s1600-h/main_screen.gif"&gt;&lt;img dragover="true" style="margin: 0pt 10px 10px 0pt; float: right; cursor: pointer; width: 160px; height: 160px;" src="http://4.bp.blogspot.com/_MvDshKp6n3U/Sb2sDhUuK0I/AAAAAAAAANk/CnwiqbdNCEE/s320/main_screen.gif" alt="" id="BLOGGER_PHOTO_ID_5313592311851920194" border="0" /&gt;&lt;/a&gt;In consequence of their data structure, is necessary one screen to display the recent records.&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;br /&gt;This screen must filter a data for the user can chose which records should be displayed in the list, theirs registers will be totalized.&lt;br /&gt;&lt;br /&gt;Now, the record type isn't classified at debit or credit. When you enter a value you must insert negative signal to indicate one debit.&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_MvDshKp6n3U/Sb2sOrN1v6I/AAAAAAAAANs/feX7V3Iggfc/s1600-h/menu_options.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 160px; height: 160px;" src="http://3.bp.blogspot.com/_MvDshKp6n3U/Sb2sOrN1v6I/AAAAAAAAANs/feX7V3Iggfc/s320/menu_options.gif" alt="" id="BLOGGER_PHOTO_ID_5313592503485972386" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The Palm Z22 have a small screen, 160 x 160 px, the use of Palm is not in better situation, walking, in so much light... The interface must be simple, that is a roule for mobile interfaces.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The idea to acess screens is using a single menu, this is present in all screens.&lt;br /&gt;&lt;br /&gt;The synchronization must send a CSV file format, that can be opened using Excel or other similar software, is easy to manipulate out of Palm, and can be used as data source for complex comparisons and filters. CSV is a simple format, probably, I will use it inside a Palm too to save data.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Of rest, is the output of data... reports, graphics, but it is still early to think about it, because I not know how to read/write data using Plua yet.&lt;br /&gt;&lt;br /&gt;I even must know how to control the Infra Red (IRdata) of Palm for synchonize it.&lt;br /&gt;&lt;br /&gt;Today is this, good bye!&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-8896804471975563542?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/8896804471975563542/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/03/sdmm-software-project-palm-analyse.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/8896804471975563542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/8896804471975563542'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/03/sdmm-software-project-palm-analyse.html' title='SDmm - Software Project: Palm analyse Application'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_MvDshKp6n3U/Sb2sDhUuK0I/AAAAAAAAANk/CnwiqbdNCEE/s72-c/main_screen.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-5249809124833565406</id><published>2009-03-09T17:26:00.000-07:00</published><updated>2009-03-15T18:55:43.689-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Português'/><category scheme='http://www.blogger.com/atom/ns#' term='SDmm'/><title type='text'>SDmm - Projeto de software: Análise do aplicativo palm</title><content type='html'>A primeira análise não permitia fazer permutas entre contas, isso porque uma conta era classificada como conta de entrada ou saída, e ocorria que na mesma conta haviam entradas e saídas. Desse modo eu tinha duas "conta carteira". Os resultados começaram a ficar confusos.&lt;br /&gt;&lt;br /&gt;Não havendo mais essa classificação, está tudo certo. Se pensarmos em banco de dados, o sistema consiste em duas tabelas:&lt;br /&gt;&lt;br /&gt;types&lt;br /&gt;*  cod_type (integer value)&lt;br /&gt;type_description (varchar)&lt;br /&gt;active (char, T ou F - true ou false)&lt;br /&gt;&lt;br /&gt;registers&lt;br /&gt;* cod_register (integer value)&lt;br /&gt;- cod_type (integer value, foreign key)&lt;br /&gt;data_register (today date)&lt;br /&gt;description (varchar)&lt;br /&gt;value (decimal, float value)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_MvDshKp6n3U/Sb2sDhUuK0I/AAAAAAAAANk/CnwiqbdNCEE/s1600-h/main_screen.gif"&gt;&lt;img dragover="true" style="margin: 0pt 10px 10px 0pt; float: right; cursor: pointer; width: 160px; height: 160px;" src="http://4.bp.blogspot.com/_MvDshKp6n3U/Sb2sDhUuK0I/AAAAAAAAANk/CnwiqbdNCEE/s320/main_screen.gif" alt="" id="BLOGGER_PHOTO_ID_5313592311851920194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Pensando agora nas telas para isso, precisaremos de uma tela que tenha os últimos lançamentos e que de acesso a um novo lançamento.&lt;br /&gt;&lt;br /&gt;Esta tela também deve ter filtros para que eu possa escolher quais lançamentos ver na listagem. Os dados desta listegem devem ser totalizados.&lt;br /&gt;&lt;br /&gt;Como agora não temos mais o tipo de conta, na hora de lançar o valor, deve-se colocar o sinal negativo junto ao valor indicando que é um débito.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_MvDshKp6n3U/Sb2sOrN1v6I/AAAAAAAAANs/feX7V3Iggfc/s1600-h/menu_options.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 160px; height: 160px;" src="http://3.bp.blogspot.com/_MvDshKp6n3U/Sb2sOrN1v6I/AAAAAAAAANs/feX7V3Iggfc/s320/menu_options.gif" alt="" id="BLOGGER_PHOTO_ID_5313592503485972386" border="0" /&gt;&lt;/a&gt;O Palm Z22 tem uma tela de 160 x 160px, o que não é muito grande, usamos o palm as veses caminhado, ou em situações que não são as ideais para uso de softwares, por isso a interface deve ser muito simples. Acredito que essa regra vale para todas as interfaces de dispositivos móveis.&lt;br /&gt;&lt;br /&gt;A idéia de acesso às telas é através de um menu principal que estará disponível em todas as telas do programa.&lt;br /&gt;&lt;br /&gt;A sincronização deve enviar um arquivo no formato CSV, que pode ser aberto por uma planilha eletrônica como o Excel c0mo fonte de dados. O formato CSV também não é complicado de usar, possivelmente internamente no Palm os dados também ficarão gravados neste formato.&lt;br /&gt;&lt;br /&gt;De restante temos ainda a saída dos dados, os relatórios e gráficos, mas é cedo ainda para pensar nisso visto que ainda não sei como através de Plua ler/gravar um arquivo.&lt;br /&gt;&lt;br /&gt;Tenho ainda que aprender a controlar o Infra Red (IRdata) do Palm para que eu possa sincronizar o mesmo.&lt;br /&gt;&lt;br /&gt;Por hoje é isso. Até mais!&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-5249809124833565406?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/5249809124833565406/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/03/sdmm-projeto-de-software-analise-do.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/5249809124833565406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/5249809124833565406'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/03/sdmm-projeto-de-software-analise-do.html' title='SDmm - Projeto de software: Análise do aplicativo palm'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_MvDshKp6n3U/Sb2sDhUuK0I/AAAAAAAAANk/CnwiqbdNCEE/s72-c/main_screen.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-3155845180437159049</id><published>2009-03-09T17:11:00.000-07:00</published><updated>2009-03-15T18:13:10.935-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SDmm'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>SDmm - Sofware Project: The reason of program</title><content type='html'>Hi friends, that I was sayed, I would develop under Java to my Palm, but the idea never is develop only to develop. The idea is construct a &lt;span style="font-weight: bold;"&gt;Source Dreans Money Manager - SDmm&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;The SDmm already exists at long time, is part of administrative interface in my web site. At this time, I had no access to internet, and ever register my costs in my local machine. One day, I not register, and in other, in other, and in other too.&lt;br /&gt;&lt;br /&gt;The solution become, now I have internet connection in my house (very slow..), but I not come back to register my costs, because in this time I perceive some wrongs in program. My own software aren't good to my use.&lt;br /&gt;&lt;br /&gt;The idea now is: &lt;span style="font-weight: bold;"&gt;Solve the wrongs in analyse, and  ever have a software displonible&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;1 - Entering the data in palm version (after, the data are be synchronized that web site)&lt;br /&gt;2 - Entering data on desktop PHP-GTK version (if is not connected, the data are saved in local data base,  else are send to web using PHP web service)&lt;br /&gt;3 - In Java interface running in my cell phone (send data directly to web using PHP web service)&lt;br /&gt;4 - Directly on the web, when I not stay in computer connected in internet.&lt;br /&gt;&lt;br /&gt;The web platform is a center of all, on this the complexes reports are be created, a web application receive all data from various devices.&lt;br /&gt;&lt;br /&gt;* Ps: The german posts, don't are written, because I not have free time to study german. Then I don't know how to write at german.  In future, I will study and write it. Sorry :)&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-3155845180437159049?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/3155845180437159049/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/03/sdmm-sofware-project-reason-of-program.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/3155845180437159049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/3155845180437159049'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/03/sdmm-sofware-project-reason-of-program.html' title='SDmm - Sofware Project: The reason of program'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-8231109117676887950</id><published>2009-03-09T13:31:00.001-07:00</published><updated>2009-03-09T17:11:52.845-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Português'/><category scheme='http://www.blogger.com/atom/ns#' term='SDmm'/><title type='text'>SDmm - Projeto de software: Motivação do projeto</title><content type='html'>Olá amigos. Como já havia dito, queria programar em Java para Palm, mas a idéia nunca foi programar só por programar. A idéia era construir o &lt;span style="font-weight: bold;"&gt;Source Dreams Money Manager - SDmm&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;O SDmm já existe a uns 3 anos, é parte da interface administrativa de meu site. Mas quando eu o fiz ainda não tinha acesso a internet em casa. Então rodava o site/sistema local em minha máquina e todo dia lançava as receitas e despesas. Isso foi bom até o momento que o primeiro gasto não foi lançado, foi o momento que iniciou-se a bagunça, lançava algumas coisas outras não. Resultado: O sistema não estando corretamente alimentado não produz resultados corretos.&lt;br /&gt;&lt;br /&gt;A solução veio, agora tenho internet em casa (bem lenta é verdade), mas não voltei a lançar os gastos, porque nesse meio tempo percebi algumas inconsitências na análise, e o meu próprio software já não me parecia bom.&lt;br /&gt;&lt;br /&gt;A idéia agora é: &lt;span style="font-weight: bold;"&gt;Corrigir os erros da análise anterior e ter o software comigo SEMPRE, da maneira que for&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;1 - lançando os dados na versão para palm (depois sincronizo os dados com o sistema web)&lt;br /&gt;2 - Lançando os dados no sistema desktop em PHP-GTK (se não tiver conexão guarda os dados localmente, quando retomar conexão, atualiza com o servidor web)&lt;br /&gt;3 - Na ineterface Java que vou fazer para meu celular (manda para web direto usando web-service)&lt;br /&gt;4 - Diretamente na web, quando estou em um computador.&lt;br /&gt;&lt;br /&gt;A plataforma web será o centro de tudo, onde os relatórios mais complexos serão gerados e os dados serão enviados a partir dos demais entradas.&lt;br /&gt;&lt;br /&gt;* Obs:  os posts em alemão não estão saindo, não consigo tempo para estudar e o que sei não é suficiente para escrever o que quero. Mais tarde planejo traduzir.&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-8231109117676887950?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/8231109117676887950/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/03/sdmm-projeto-de-software-motivacao-do.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/8231109117676887950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/8231109117676887950'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/03/sdmm-projeto-de-software-motivacao-do.html' title='SDmm - Projeto de software: Motivação do projeto'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-4369285301857640524</id><published>2009-01-30T17:17:00.000-08:00</published><updated>2009-02-01T14:59:43.795-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Plua'/><category scheme='http://www.blogger.com/atom/ns#' term='English'/><title type='text'>The first experience with Lua programming language</title><content type='html'>On my vacations I got a "&lt;a href="http://www.palm.com/in/products/handhelds/z22/"&gt;Palm One Z22&lt;/a&gt;", it was nice, but limited like the "hardware" had ever been. It needs usefull softwares, otherwise a Palm is only a digital scheduler.&lt;br /&gt;&lt;br /&gt;The reason why I wanted this device is because I knew that is how to develop software for this plataform. Actually I was right that I could program in Java for it, and because this semester at college we will have the OOP issue (which uses Java), I just wanted to join the necessary (learning Java) with the joyfull (make my own Palm applications).&lt;br /&gt;&lt;br /&gt;Unfortunatelly, I discovered that it doesn't run Java apps (at least I still don't know how to do). Yes, it's possible to develop in a lots of languages. One of them is my point of view is the &lt;a href="http://en.wikipedia.org/wiki/Lua_%28programming_language%29"&gt;Lua&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-family:Century Gothic;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;language.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-family:Century Gothic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Reasons why I have chosen Lua:&lt;br /&gt;&lt;br /&gt;- It's possible to develop in Lua for almost "every" hardware and plataform (Windows, Linux, Unix, Mac, PowerPC, Xbox, PlayStation, para web, Symbian, Win CE ....)&lt;br /&gt;&lt;br /&gt;-  It's a programming language created here in Brazil, but with international visibility, here in Brasil only a few people knows Lua.&lt;br /&gt;&lt;br /&gt;- It's used for game programming, and it rocks! Take a looK at &lt;a href="http://en.wikipedia.org/wiki/Lua_%28programming_language%29#Applications"&gt;Wikipedia&lt;/a&gt;, what ones have made using Lua! It's amazing!&lt;br /&gt;&lt;br /&gt;-  Adobe uses it in Photoshop&lt;br /&gt;&lt;br /&gt;- There is "enought" documentation, as I sad, here in Brasil there is a little, what exists is in English (and I like it, because I want to improve my English and I'm learning German). Is a good area to write articles.&lt;br /&gt;&lt;br /&gt;- Is a program language used of midleware on Digital TV model at Brazil, here Digital TV is a new thing, is begining now, have so much to make.&lt;br /&gt;&lt;br /&gt;- I think that is easy to learn. I never read one line of Lua code, but in less at 3 hours I develop my first program. The program is under &lt;a href="http://meusite.uai.com.br/%7Emmand/plua/plua.htm"&gt;Plua&lt;/a&gt;, a Lua extension, so in this time I learn the basic of Lua and how use Plua components.&lt;br /&gt;&lt;br /&gt;Well, go to code! (please dont smile, that is my first code, is my "hello world" in Lua, I will better rewrite it).&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="lua"&gt;&lt;br /&gt;ptitle("helton app")&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function salario()&lt;br /&gt;&lt;br /&gt;s = pinput("digite seu salario","R$ 100000")&lt;br /&gt;&lt;br /&gt;return s&lt;br /&gt;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-- 2 lines, 200 of widht, acept 20 characters&lt;br /&gt;&lt;br /&gt;--fileField = pfield(2,200,20)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function main()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;repeat&lt;br /&gt;&lt;br /&gt;s = salario()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-- if sempre tem o then, mesmo tendo so uma linha de comando&lt;br /&gt;&lt;br /&gt;if(s ~= nil) then&lt;br /&gt;&lt;br /&gt;print(s)&lt;br /&gt;&lt;br /&gt;main()&lt;br /&gt;&lt;br /&gt;else&lt;br /&gt;&lt;br /&gt;break&lt;br /&gt;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;until(1==1)&lt;br /&gt;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;if pconfirm("fechar o programa?") then&lt;br /&gt;&lt;br /&gt;print("ok")&lt;br /&gt;&lt;br /&gt;else&lt;br /&gt;&lt;br /&gt;main()&lt;br /&gt;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This code is wrote at Plua 1.0, in 2.0 version is object oriented, the comands change all (in 2.0 you use classes when theirs methods ...). I compile that code in my computer and send the compiled file ".prc" to Palm using HotSync. In Palm you must be instaled the Plua runtime (is the libs, like Java virtual machine), in my case I have 1.0 runtime instaled, because the program are be compiled at 1.0 compiler.&lt;br /&gt;&lt;br /&gt;You can download the runtime and compiler at Plua site project. On site have too the basic documentation. This is &lt;a href="http://netpage.uai.com.br/mmand/plua.htm"&gt;Plua 1.0 oficial site&lt;/a&gt;, and this is &lt;a href="http://meusite.uai.com.br/%7Emmand/plua/plua.htm"&gt;Plua 2.0 oficial site&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The more strange in this language (Lua and Plua) is the comment char ("--"), is a first language that I see using this.&lt;br /&gt;&lt;br /&gt;Well, you may have percepted, the URL of this blog is in German, descriptions and titles in portuguese, english and german. The all texts I will write in 3 languages. Is good for my (I am learning english and german) and good for you if you understend one of 3 languages.&lt;br /&gt;&lt;br /&gt;Bye!&lt;br /&gt;&lt;br /&gt;I declare started the blog of Lua world!&lt;br /&gt;&lt;br /&gt;Regards: Helton Edurado Ritter&lt;br /&gt;&lt;br /&gt;Thanks to:&lt;br /&gt;&lt;strong&gt;Cansu Sarikaya - &lt;/strong&gt;&lt;strong&gt;"&lt;/strong&gt;Don't be afraid to make mistake, because english is not your mother tongue&lt;strong&gt;"&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fernando Fischer&lt;/span&gt; - For first english review in this post.&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-4369285301857640524?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/4369285301857640524/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/01/first-experience-with-lua-programming.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/4369285301857640524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/4369285301857640524'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/01/first-experience-with-lua-programming.html' title='The first experience with Lua programming language'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3861059009390733472.post-5293503715899209271</id><published>2009-01-30T03:50:00.000-08:00</published><updated>2009-01-31T12:48:50.966-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Plua'/><category scheme='http://www.blogger.com/atom/ns#' term='Português'/><title type='text'>A primeira experiência com a linguagem Lua</title><content type='html'>Nas férias arrumei um &lt;a href="http://www.palm.com/in/products/handhelds/z22/"&gt;Palm Z22&lt;/a&gt;, muito legal, mas limitado como todo o "hardware" por sí só sempre foi. Precisa-se de softwares úteis, senão um Palm é apenas uma agenda digital.&lt;br /&gt;&lt;br /&gt;O motivo pelo qual  quis esse aparelho é justamente porque sabia que existia como desenvolver software para essa plataforma. Na verdade eu estava certo que poderia programar em Java para ele, e como esse semestre na faculdade teremos a cadeira de Programação Orientada a Objetos (que usa-se de Java), queria mesmo é juntar o necessário (aprenmder Java) com o agradável (fazer meus próprios aplicativos para Palm).&lt;br /&gt;&lt;br /&gt;Infelismente descobri que não roda Java (pelo menos ainda não sei como fazer). Sim, da para programar em mais uma porção de linguagens. Uma delas e no meu ponto de vista é a linguagem &lt;a href="http://en.wikipedia.org/wiki/Lua_%28programming_language%29"&gt;Lua&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Motivos por ter escolhido Lua:&lt;br /&gt;&lt;br /&gt;- Da para programar em Lua para praticamente todos os hardwares e plataformas (Windows, Linux, Unix, Mac, PowerPX, Xbox, PlayStation, para web, Symbian, Win CE ....)&lt;br /&gt;&lt;br /&gt;- Uma linguagem de programação criada aqui no Brasil, mas com visibilidade internacional, aqui no Brasil são muito poucos os que sabem.&lt;br /&gt;&lt;br /&gt;- É usada para programação de jogos, e dá show!!! Confira na &lt;a href="http://en.wikipedia.org/wiki/Lua_%28programming_language%29#Applications"&gt;Wikipedia&lt;/a&gt; quais foram feitos usando Lua! Incrível!&lt;br /&gt;&lt;br /&gt;- A Adobe usa ela no Photoshop&lt;br /&gt;&lt;br /&gt;- Tem documentação "suficiente", como disse, aqui no Brasil são poucos, o que tem está em inglês (e isso me agrada, estou mesmo querendo exercitar meu inglês e estou aprendendo alemão). Tendo pouca documentação, há muita área para escrever artigos sobre Lua, não é como PHP que para cada função da linguagem tem incontável artigos.&lt;br /&gt;&lt;br /&gt;- É a linguagem de programação usada no midelware da TV Digital aqui no Brasil, esse negócio de TV Digital está começando agora aqui, logo tem MUITO o que fazer.&lt;br /&gt;&lt;br /&gt;- Achei uma linguagem de programação fácil. Nunca tinha lido uma linha de código sobre a linguagem, em menos de 3 horas fiz meu primeiro programa, e nem era em Lua, era em &lt;a href="http://meusite.uai.com.br/%7Emmand/plua/plua.htm"&gt;Plua&lt;/a&gt;. Ou seja, tive que aprender o básico sobre Lua + os recursos para programar para Palm que a Plua oferece.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bom, chega de enrolação e vamos ao código! (não riam, este é meu "hello world", o primeiro código que escrevi, vai melhorar ainda! )&lt;br /&gt;&lt;pre name="code" class="lua"&gt;&lt;br /&gt;ptitle("helton app")&lt;br /&gt;&lt;br /&gt;function salario()&lt;br /&gt; s = pinput("digite seu salario","R$ 100000")&lt;br /&gt; return s&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;-- duas linhas, 200 de largura, aceita 20 caracteres&lt;br /&gt;&lt;br /&gt;--fileField = pfield(2,200,20)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function main()&lt;br /&gt;&lt;br /&gt; repeat&lt;br /&gt;&lt;br /&gt;   s = salario()&lt;br /&gt;&lt;br /&gt;   -- if sempre tem o then, mesmo tendo so uma linha de comando&lt;br /&gt;   if(s ~= nil) then&lt;br /&gt;     print(s)&lt;br /&gt;     main()&lt;br /&gt;   else&lt;br /&gt;     break&lt;br /&gt;   end&lt;br /&gt;&lt;br /&gt; until(1==1)&lt;br /&gt;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;if pconfirm("fechar o programa?") then&lt;br /&gt; print("ok")&lt;br /&gt;else&lt;br /&gt; main()&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Este código está escrito em Plua 1.0, na versão 2.0 é tudo OO pelo que percebi, mudam bastante os comandos (que são objetos na 2.0 com seus métodos e tal ...). Eu compilei ele no computador e passei o arquivo compilado ".prc" para o Palm pelo HotSync. No palm você tem que ter instalado o Plua Runtime (que são as libs necessárias, não sei certo ainda, mas é tipo uma máquina Java), no meu caso tenho instalado o runtime da versão 1.0, que o programa foi compilado para tal.&lt;br /&gt;&lt;br /&gt;Vocês pode baixar  o runtime no site do projeto Plua. O compilador, e a documentação também está lá (&lt;a href="http://netpage.uai.com.br/mmand/plua.htm"&gt;Plua1.0 site oficial&lt;/a&gt; e &lt;a href="http://meusite.uai.com.br/%7Emmand/plua/plua.htm"&gt;Plua 2.0 site oficial&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;O que achei de anormal na linguagem? O comentário de uma linha é "--", é a primeira linguagem (Lua e Plua) que sei que usa esse caracter.&lt;br /&gt;&lt;br /&gt;Bom, como você deve ter percebido, esse blog tem sua URL em alemão,  descrição e título em português, inglês e alemão. Os textos TODOS do blog pretendo disponibilizar nestes três idiomas. Bom para mim, bom para você que pode falar melhor um desses idiomas que o outro.&lt;br /&gt;&lt;br /&gt;Até a próxima!&lt;br /&gt;&lt;br /&gt;Declaro iniciado o blog do mundo da Lua!&lt;br /&gt;&lt;br /&gt;Atenciosamente: Helton Eduardo Ritter&lt;div class="blogger-post-footer"&gt;Bem vindo ao meu mundo - Wellcome to my world - Willkommen in meiner Welt&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3861059009390733472-5293503715899209271?l=vonluawelt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vonluawelt.blogspot.com/feeds/5293503715899209271/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://vonluawelt.blogspot.com/2009/01/primeira-experiencia-com-linguagem-lua.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/5293503715899209271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3861059009390733472/posts/default/5293503715899209271'/><link rel='alternate' type='text/html' href='http://vonluawelt.blogspot.com/2009/01/primeira-experiencia-com-linguagem-lua.html' title='A primeira experiência com a linguagem Lua'/><author><name>Helton Eduardo Ritter</name><uri>http://www.blogger.com/profile/08450017811928254585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_MvDshKp6n3U/TTMBkVo0g0I/AAAAAAAAA0o/-g6L_zkBVSI/S220/SDC13821.JPG'/></author><thr:total>1</thr:total></entry></feed>
