Desenvolvimento - Mobile

Palm OS: Segurança da Informação

Quando um programador é chamado para desenvolver um sistema dedicado a plataforma Palm OS, a fim de automatizar um processo ele deve estar ciente que o novo sistema deve ser seguro, não só quanto a roubo de informação mas também a perca de informação.

por Wellington Pinto de Oliveira



Quando um programador é chamado para desenvolver um sistema dedicado a plataforma Palm OS, a fim de automatizar um processo ele deve estar ciente que o novo sistema deve ser seguro, não só quanto a roubo de informação mas também a perca de informação.

Pacote Softpalm HBK

Recordando

Download

Projeto

Crie os campos NOME e TELEFONE com os dados apresentados na Tabela. Na tela inicial adicione um ListBox, dois Labels, dois Fields, um Button e um Graffiti, altere as propriedades nome destes conforme a tabela abaixo:

Posicione estes objetos segundo a figura abaixo:

Crie agora dois itens, para isso basta pressionar “New Item”, altere as propriedades destes itens segundo as tabelas abaixo:

Abaixo temos uma figura ilustrando o menu.

1 Private Sub Application_NormalLaunch()

2 dim f as new frmMain

3

4 DebugPrint "Versão do Pacote: " & versaoFrameWork(true)

5

6 f.Show hbFormModeless+hbFormGoto

7 End Sub

2 Private Dim arquivo as String

3 "Cartão é uma instancia da classe Backup

4 Private Dim cartao as new clsVFSBackup

5

6 "devemos carregar o nome do arquivo a a ser gerado

7 Private Sub Initialize()

8 arquivo = "agenda"

9 End Sub

10

11 "Quando o formulário carregar

12 Private Sub Form_Load()

13 CarregaList

14 End Sub

15

16 "Método que carrega o ListBox

17 Private Sub CarregaList()

18 Dim rs as new dbAgenda

19

20 rs.OpenTable hbModeOpenAlways+hbModeReadOnly

21

22 "Listo os dados existentes no PDB

23 while not rs.EOF

24 lstAgenda.AddItem rs.NOME

25 rs.MoveNext

26 wend

27

28 "Fecho o arquivo

29 rs.Close

30 Set rs = nothing

31 End Sub

32

33 "Evento que grava um registro

34 Private Sub btGravar_Click()

35 Dim rs as new dbAgenda

36

37 rs.OpenTable hbModeOpenAlways+hbModeReadWrite

38

39 "Gravando no arquivo PDB, este PDB está na

40 "memoria interna 0

41 rs.AddNew

42 rs.NOME = fldNome.Text

43 rs.Update

44

45 "Gravando no cartao, o cartão é a memoria 1

46 cartao.Escrever arquivo, Cstr(rs.UniqueID) & ";" & fldNome.Text & ";" & fldTelefone.Text

47

48 "Exibindo o novo dado no list

49 lstAgenda.AddItem fldNome.Text

50

51 "Limpando os Fields

52 fldNome.Text = ""

53 fldTelefone.Text = ""

54

55 "Fechando o PDB

56 rs.Close

57 Set rs = nothing

58 End Sub

59

60 "Evento que exibe todos os registros existentes no cartao

61 Private Sub mnuExibir_Click()

62 "Vetor que será carregado com os dados do arquivo

63 Dim resultado() as String

64 "A classe clsString possui o método Coluna() que é capaz de trazer

65 "de forma fácil parte de uma string dado um delimitador

66 Dim str as new clsString

67 "Variável auxiliar no FOR

68 Dim i as Integer

69

70 "Chamo o método que carrega os dados do arquivo no Array

71 cartao.Ler arquivo,resultado

72

73 "Vou varrer o vetor e exibir os dados

74 For i = 1 to UBound(resultado)

75 str.TEXT = resultado(i)

76 MsgBox "Nome: " & str.Coluna(";",2) & "\nTelefone: " & str.Coluna(";",3)

77 next

78 End Sub

79

80 "Evento que restaura os dados do cartao

81 Private Sub mnuRestaurar_Click()

82 "Vetor que será carregado com os dados do arquivo

83 Dim resultado() as String

84 "A classe clsString possui o método Coluna() que é capaz de trazer

85 "de forma fácil parte de uma string dado um delimitador

86 Dim str as new clsString

87 "Variável auxiliar no FOR

88 Dim i as Integer

89 "Vamos usar a DatabaseInfo para apagar o arquivo PDB da memória

90 "interna do palm

91 Dim di as new DatabaseInfo

92 Dim rs as dbAgenda

93

94

95 "Chamo o método que carrega os dados do arquivo no Array

96 cartao.Ler arquivo,resultado

97

98 if UBound(resultado) = 0 then

99 "Vamos abordar a execução se não tiver nenhum registro

100 Exit Sub

101 end if

102

103 if di.FindByName(app.Info.Creator & "_dbAgenda") then

104 di.Delete

105 end if

106

107 "Vou varrer o vetor e exibir os dados

108 For i = 1 to UBound(resultado)

109 str.TEXT = resultado(i)

110 set rs = new dbAgenda

111 rs.OpenRecordset "UniqueID=" & str.Coluna(";",1),hbModeOpenAlways+hbModeReadWrite

112

113 "Se não existir um UniqueID no PDB compativel com o registro eu uso o AddNew, se existir eu uso o Edit

114 if rs.EOF then

115 rs.AddNew

116 rs.UniqueID = CLng(str.Coluna(";",1))

117 else

118 rs.Edit

119 end if

120 "informo os dados

121 rs.NOME = str.Coluna(";",2)

122 rs.TELEFONE = str.Coluna(";",3)

123 rs.Update

124

125 "Sempre fecho para abrir novamente

126 rs.Close

127 Set rs = nothing

128 next

129 "recarrego o List

130 CarregaList

131 End Sub

Testes

Nenhuma informação foi inserida ainda, para inserir dados é simples, basta adicionar o nome e o telefone, ao final pressione o botão Gravar, conforme a Figura abaixo:

Caso ocorra algum problema com o Handheld, tais como perca de dados, falha no hardware basta entrar no menu e selecionar “Restaurar” e ele vai restaurar a base de dados.