Translate

Quanto já ganhei

sábado, 21 de setembro de 2013

Comandos DOS e arquivos .bat (Parte 4) – Cadastro de Aniversariantes

OBS.: 1) É altamente recomendado, para melhor aprendizagem, que ao invés de copiar e colar, digite todo conteúdo dos exemplos, dessa forma terá maior fixação dos comandos e sintaxe dos mesmos.
2) Todos os testes dos exemplos foram realizados utilizando como sistema operacional o Windows 8, o que não significa que  funcionará no mesmo.


Vamos desenvolver agora um programa que utilizará arquivos como forma de entrada e saída de dados onde poderemos gravar, apagar, fazer listagens e também pesquisas.



É um programa simples chamado NIVER que mostra como é possível realizar certas tarefas, utilizando apenas comandos do MS-DOS. Nele você poderá cadastrar aniversariantes em seu respectivo mês, onde poderá consultá-los e excluí-los posteriormente.



  1. @echo Off
  2. mode con cols=60 lines=30

  3. :mnuPrin

  4. Title Niver - Menu Principal
  5. cls
  6. echo  Niver
  7. echo.
  8. echo  O que deseja fazer?
  9. echo.
  10. echo.
  11. echo                 1-Cadastrar Aniversariantes
  12. echo                 2-Apagar Aniversariantes
  13. echo                 3-Listagem
  14. echo                 4-Pesquisa
  15. echo                 5-Desenvolvedor
  16. echo                 6-Sair
  17. echo.
  18. echo.
  19. set /p "op=Escolha uma opcao: "

  20. rem validacao para aceitar apenas os valores pre determinados
  21. if %op% LSS 1 (
  22. echo.
  23. echo ESCOLHA INCORRETA!
  24. echo.
  25. pause
  26. goto mnuPrin
  27. )
  28. if %op% GTR 6 (
  29. echo.
  30. echo ESCOLHA INCORRETA!
  31. echo.
  32. pause
  33. goto mnuPrin
  34. )
  35. rem fim da validacao para aceitar apenas os valores pre determinados

  36. if %op%==1 set operacao=Cadastrar
  37. if %op%==2 set operacao=Apagar
  38. if %op%==3 set operacao=Listagem
  39. if %op%==4 goto Pesquisa
  40. if %op%==5 goto desenvolvedor
  41. if %op%==6 exit

  42. :escmes

  43. Title Niver - %operacao%
  44. cls
  45. echo  Niver
  46. echo.
  47. echo  Escolha o mes para %operacao% Aniversariantes:
  48. echo.
  49. echo.
  50. echo         1-Janeiro     5-Maio      9-Setembro
  51. echo         2-Fevereiro   6-Junho    10-Outubro
  52. echo         3-Marco       7-Julho    11-Novembro
  53. echo         4-Abril       8-Agosto   12-Dezembro
  54. echo.
  55. echo         M-Menu Principal
  56. echo         S-Sair
  57. echo.
  58. set /p "mes=Escolha uma opcao: "

  59. if %mes%==1 (
  60. set MesEscolhido=Janeiro
  61. set Arquivo=Jan
  62. goto MesEscolhido
  63. )
  64. if %mes%==2 (
  65. set MesEscolhido=Fevereiro
  66. set Arquivo=Fev
  67. goto MesEscolhido
  68. )
  69. if %mes%==3 (
  70. set MesEscolhido=Marco
  71. set Arquivo=Mar
  72. goto MesEscolhido
  73. )
  74. if %mes%==4 (
  75. set MesEscolhido=Abril
  76. set Arquivo=Abr
  77. goto MesEscolhido
  78. )
  79. if %mes%==5 (
  80. set MesEscolhido=Maio
  81. set Arquivo=Mai
  82. goto MesEscolhido
  83. )
  84. if %mes%==6 (
  85. set MesEscolhido=Junho
  86. set Arquivo=Jun
  87. goto MesEscolhido
  88. )
  89. if %mes%==7 (
  90. set MesEscolhido=Julho
  91. set Arquivo=Jul
  92. goto MesEscolhido
  93. )
  94. if %mes%==8 (
  95. set MesEscolhido=Agosto
  96. set Arquivo=Ago
  97. goto MesEscolhido
  98. )
  99. if %mes%==9 (
  100. set MesEscolhido=Setembro
  101. set Arquivo=Set
  102. goto MesEscolhido
  103. )
  104. if %mes%==10 (
  105. set MesEscolhido=Outubro
  106. set Arquivo=Out
  107. goto MesEscolhido
  108. )
  109. if %mes%==11 (
  110. set MesEscolhido=Novembro
  111. set Arquivo=Nov
  112. goto MesEscolhido
  113. )
  114. if %mes%==12 (
  115. set MesEscolhido=Dezembro
  116. set Arquivo=Dez
  117. goto MesEscolhido
  118. )
  119. if /I %mes%==M goto mnuPrin
  120. if /I %mes%==S exit
  121. rem validacao para aceitar apenas os valores pre determinados
  122. if %mes% LSS 1 (
  123. echo.
  124. echo MES INCORRETO!
  125. echo.
  126. pause
  127. goto escmes
  128. )
  129. if %mes% GTR 12 (
  130. echo.
  131. echo MES INCORRETO!
  132. echo.
  133. pause
  134. goto escmes
  135. )
  136. rem fim da validacao para aceitar apenas os valores pre determinados

  137. rem Cadastrar, Apagar e Pesquizar no mes escolhido.
  138. :MesEscolhido
  139. Title Niver - %operacao% em %MesEscolhido%
  140. cls
  141. echo  Niver
  142. echo.
  143. echo  Mes escolhido: %MesEscolhido%
  144. echo.
  145. echo. 

  146. if %op%==1 goto Cadastrar
  147. if %op%==2 goto Apagar
  148. if %op%==3 goto Listagem

  149. :Cadastrar
  150. set /P "nome=Nome do aniversariante: "
  151. set /P "dia=Dia do aniversario: "
  152. echo Nome: %nome% - Dia: %dia% >> %Arquivo%.niv
  153. goto escmes

  154. :Apagar
  155. set /p "apagar=Nome do aniversariante para apagar: "
  156. find /I /V "%apagar%" %Arquivo%.niv > %Arquivo%2.niv
  157. echo.
  158. echo.
  159. pause
  160. del %Arquivo%.niv
  161. rename %Arquivo%2.niv %Arquivo%.niv
  162. find /I /V "JAN.NIV" %Arquivo%.niv > %Arquivo%2.niv
  163. del %Arquivo%.niv
  164. rename %Arquivo%2.niv %Arquivo%.niv
  165. goto escmes

  166. :Listagem
  167. sort %Arquivo%.niv | more /S
  168. echo.
  169. pause
  170. goto escmes

  171. :Pesquisa
  172. Title Niver - Pesquisa
  173. cls
  174. echo  Niver
  175. echo.
  176. set /P "NomePesq=Nome do aniversariante para pesquisar: "
  177. if exist jan.niv find /I "%NomePesq%" jan.niv
  178. if exist fev.niv find /I "%NomePesq%" fev.niv
  179. if exist mar.niv find /I "%NomePesq%" mar.niv
  180. if exist abr.niv find /I "%NomePesq%" abr.niv
  181. if exist mai.niv find /I "%NomePesq%" mai.niv
  182. if exist jun.niv find /I "%NomePesq%" jun.niv
  183. echo.
  184. pause
  185. cls
  186. echo  Niver
  187. echo.
  188. echo                  CONTINUACAO DA PESQUISA...
  189. echo.
  190. if exist jul.niv find /I "%NomePesq%" jul.niv
  191. if exist ago.niv find /I "%NomePesq%" ago.niv
  192. if exist set.niv find /I "%NomePesq%" set.niv
  193. if exist out.niv find /I "%NomePesq%" out.niv
  194. if exist nov.niv find /I "%NomePesq%" nov.niv
  195. if exist dez.niv find /I "%NomePesq%" dez.niv
  196. echo.
  197. pause
  198. goto mnuPrin

  199. :desenvolvedor

  200. Title Niver - Desenvolvedor
  201. cls
  202. echo  Niver
  203. echo.
  204. echo Niver eh um programa livre para agendar datas de
  205. echo aniversarios, produzida por Leomar Ilario como
  206. echo parte dos estudos do MS-DOS com arquivos em lote
  207. echo desenvolvida para o Blog Cabeca Nerd.
  208. echo.
  209. echo Contato desenvolvedor: blogcabecanerd@gmail.com
  210. echo.
  211. pause
  212. cls
  213. goto mnuPrin


O programa ficará da seguinte forma:




Veja também:

2 comentários:

  1. olha eub gostei muito do seu blog... Mas voce tem algum codigo de cadastrar pessoas ??
    exemplo: Nome, endereço, telefone... se tiver me responde... valeu

    ResponderExcluir
    Respostas
    1. Olá amigo, muito obrigado.
      Postei um programa que talvez seja o que vc procura, dá uma conferida:

      http://cabeca-nerd.blogspot.com/2013/09/comandos-dos-e-arquivos-bat-parte-5.html

      Até mais.

      Excluir