ARGUMENTO

USUARIO.EXCLUIDOS 09/06/2004 08:28:21
#28849
Olá...
Bom... eu tenho um aplicativo (um Chat), que eu gostaria de trabalhar com comandos e argumentos.... algo do tipo...
se a pessoa digitase "/quit Mensagem" eu teria que interpretar a primeira palavra após a barra (/quit) e em seguida saber qntos argumentos é permitido para aquele comando e interpratálo-o (No caso do /quit, so teria o argumento Mensagem)

Vcs me entenderam?!?!

Isso trabalhando com banco de dados!!!
USUARIO.EXCLUIDOS 09/06/2004 09:07:11
#28855
Resposta escolhida
voce pode usar uma combinacao de select case e split...

vc vai receber um comando no formato "/CMD ARG1 ARG2 ARG3"
certo?

entao como sugestao - remove a barra
mid$(comando,2)

quebra o comando em um array
SPLIT

faz um select com o primeiro valor do array
select case ucase(ArrayComando(0))
case "QUIT"
'sabe que são 3 argumentos por exemplo - entao verifica se comando veio completo
if ubound(ArrayComando)=3 then
chama funcao quit e passa argumentos
FuncaoQuit ArrayComando(1), ArrayComando(2), ArrayComando(3)
endif
end select
USUARIO.EXCLUIDOS 09/06/2004 10:54:31
#28891
Dim MeuArry() As String
MeuArray = Split(MeuTexto, CaracterQueSepara)

se vai separar por espacao - CaractarQueSepara = " "

exatamente o que voce quer dizer com banco de dados?
dependendo de como for, voce pode usar AddressOf e usar um array publico para armazenar argumentos - mas nao eh nada recomendado...

o que voce guarda em seu banco de dados e como voce pretende usar isto?
USUARIO.EXCLUIDOS 09/06/2004 11:15:58
#28904
existe uma forma de fazer que torna o trabalho menos complicado...
voce cria "plug in's"

por exemplo - precisa mandar uma mensagem - existe um envMsg.exe em algum lugar
precisa enviar um arquivo - existe um envArquivo.exe
e assim por diante...

voce faz a pesquisa em funcao do comando (usando o split para pegar os argumentos e comando)
pega o caminho do executavel que executa este comando (mais uma coluna em seu banco de dados)
passa os argumentos no shell
shell EXEDeTarefa & Argumentos

em cada executavel voce recupera os argumentos usando
Command$

USUARIO.EXCLUIDOS 09/06/2004 11:23:46
#28909
cria uma coluna com:
IDComando
NomeComando
NumeroArgumentos (e se for o caso tipo de argumentos)

na hora que receber o comando faca uma pesquisa assim...
select IDComando from Tabela Where Comando='" & Array(0) & "' and NumeroArgumentos=" & ubound(array)-1 & ";"

se retornar IDComando, o comando é válido...
com o IDComando voce faz um select case

select case IDComando
case 1
'quit
case 2
'pisca
case 3
'bold
end select

preferencialmente use os numeros associados de um Enum
Public Enum IDComandos
eQuit = 1
ePisca = 2
eBold = 3
end Enum
e no select case voce usa

case eQuit
case ePisca
case eBold

para poder alterar os valores com seguranca depois
USUARIO.EXCLUIDOS 09/06/2004 11:24:26
#28910
seria - entao de preferencia por select case e nao chamadas pelo nome do comando
Tópico encerrado , respostas não são mais permitidas