Índice:

Programação em VB6: dicas e truques: 3 etapas
Programação em VB6: dicas e truques: 3 etapas

Vídeo: Programação em VB6: dicas e truques: 3 etapas

Vídeo: Programação em VB6: dicas e truques: 3 etapas
Vídeo: Visual Basic 6.0 - Aula 5 2024, Julho
Anonim
Programação em VB6: dicas e truques
Programação em VB6: dicas e truques

Eu programo em meu tempo livre e sou um programador bastante proficiente usando VB6. É fácil e ainda não encontrei nada que precise fazer e não possa, embora às vezes possa ser complicado realizar sua tarefa. Ao longo do caminho eu encontrei muitas coisas irritantes, principalmente a forma como conta certas coisas. Portanto, aqui está uma compilação de algumas coisas que aprendi ao longo do caminho. Peço que se você tiver algum problema, comente e tentarei ajudar com mais etapas.

Etapa 1: Strings

Cordas
Cordas

A forma como o VB lida com strings às vezes é confusa.texta = "abcdefg" put "símbolos em ambos os lados do texto que você deseja que sejam contados como stringMid (String, Start, Length) seleciona uma seção de texto de uma string. Em strings não há strings de início zero começam em 1textb = mid (texta, 2, 2) isso torna a variável textb = "bc" textb = mid (texta, 4, 4) isso torna a variável textb = "defg" textb = mid (texta, 4), 5) isso torna a variável textb = "defg" Isso é correto se o texto que você está tentando selecionar for mais longo do que o texto disponível que termina no último caractere dependendo do seu programa, você terá que colocar armadilhas para evitar erros. é uma armadilha: textb = mid (texta, 4, 5) se len (textb) <5 então 'Len () retorna o comprimento de uma string o <significa menos do que msgbox "texto é muito curto"' Mostra uma caixa de mensagem com the stringexit sub 'Isso sai do sub em que você está. terminando o código. se você estiver em uma função, então você deve colocar exit functionend se encontrar o lugar de um caractere em uma string que usamos instr (Start, Stri ng1, String2) texta = "abcdefg" textb = instr (1, texta, "c") 'isto encontra a letra c na string textatextb agora igual a 3NOTA: Instr retorna 0 (zero) se não encontrar o caractere REORGANIZANDO: este é um irritante dizer que você deseja que "abcdefg" seja "defgabc" texta = "abcdefg" textb = mid (texta, 4, 4) & mid (texta, 1, 3) Isso não foi tão ruim, mas agora vamos adicionar o instr () functionsay que você deseja reorganizar uma string em um caractere de cortina, mas não é o mesmo local everytimetexta = "abcdefg" textb = "gfabdec" textc = mid (texta, instr (1, texta, "c"), len (texta) - instr (1, texta, "c") + 1) & mid (texta, 1, instr (1, texta, "c") - 1) observe a parte len (texta) - instr (1, texta, " c ") + 1 porque instr conta o caractere que você está procurando, então você volta um caractere para que mid () pegue o caractere que você está procurando como o primeiro na stringtextc agora é igual a" cdefgab "textd = mid (textb, instr (1, textb, "c"), len (textb) - instr (1, textb, "c") + 1) & mid (textb, 1, instr (1, textb, "c") - 1) textd agora equa ls "cgfabde" vamos tentar encontrar um caractere que não está na stringtexta = "abcdefg" textc = mid (texta, instr (1, texta, "h"), len (texta) - instr (1, texta, "h") + 1) & mid (texta, 1, instr (1, texta, "h") - 1) você obtém um erro porque a parte inicial de Mid () não pode = 0, pois as strings começam em 1, portanto, você deve evitar o tempo de execução erro. esta é uma maneira de fazer ittexta = "abcdefg" if instr (1, texta, "h") 0 thentextc = mid (texta, instr (1, texta, "h"), len (texta) - instr (1, texta, "h") + 1) & mid (texta, 1, instr (1, texta, "h") - 1) else 'apenas uma instrução else por if situaçãomsgbox "Não é possível localizar o caractere na string"' mostra uma caixa de mensagem com the stringend ifThis resume praticamente tudo o que você precisa saber sobre strings

Etapa 2: conversão de caracteres

Convertendo Personagens
Convertendo Personagens

HEX: Um que encontrei no início desta semana tem a ver com a função Hex (número), o comprimento do número não importa. Ele retorna uma string em hexhex (11111111) e retorna "A98AC7" ao converter um caractere ascii em hex que você faria dotexta = "a" hex (asc (texta)) retorna "61" texta = "k" hex (asc (texta)) retorna "6B" a string terá 2 caracteres para a MAIORIA dos caracteres ASCI, a menos que estejam abaixo do valor de 16 então ele retorna apenas 1 caractere; se você quiser que todos eles tenham 2 caracteres, você faria o seguinte: textb = hex (asc (texta)) if len (textb) = 1 thentextb = "0" e textb 'que é um zero, não um capital oend se

Etapa 3: edição de arquivo

Edição de arquivo
Edição de arquivo

para abrir um arquivo você precisa de um freefile e um filenamegfile = FreeFile 'gfile é agora o próximo freefilec = "c: / test.txt", então existem 4 maneiras de abrir um fileInput - Você só pode ler. Saída - você só pode escrever e apagará o arquivo se ele existir. retorno de carro e avanço de linha últimos caracteresAppend - Você só pode escrever. ele será adicionado ao arquivo existente. retorno de carro e alimentação de linha últimos caracteresBinário - ler e gravar. muito preciso. o único que eu uso agora. para construir arquivos de log e tal uso acrescentará a nova entrada ao final do arquivo. para arquivos de log mais complexos carregue o arquivo inteiro em uma variável e adicione a nova entrada no início de o file.dim stro como string 'isso é necessário ou haverá um errorgfile = FreeFilec = "c: / test.txt" aberto c para binário como #gfile' lembre-se de que gfile é um numberstro = space $ (lof (gfile)) 'ao abrir para binário, você tem que dizer quão grande é o comprimento do texto que você deseja pegar lof (gfile) irá retornar o comprimento de gfile e o espaço $ () retorna uma string de espaços do comprimento do número que você digitou #gfile, 1, stro 'obtém do número do arquivo, byte inicial, variável para salvá-lo. e carrega apenas o comprimento da variávelclose #gfilestro agora é igual ao arquivo test.txt. você pode colocar informações em um arquivo byffile = FreeFilestro = "Nova linha" & VbCrLf & stro 'adiciona "Nova linha" e carraige return and linefeed seguido pelo textopen c original para binário como #ffilekill cput #ffile, 1, stro 'put sobrescreve as informações anteriores se o arquivo estiver ficando menor, você deve matar o arquivo primeiro, o que o excluifeche #ffilethe arquivo agora tem "Nova linha" em uma coisa Descobri que com a função put há erros se você tentar colocar um caractere como put #file, 133, chr (1) 'isso substitui o caractere no byte 133 pelo caractere 1 ou hexadecimal 0x01I encontrado quando fiz isso com um programa I fez com que ele realmente adicionasse hex 0x08000100000001 que é muito estranho. Resolvi isso carregando o arquivo em uma variável e executando string modsi = 133stro = mid (stro, 1, i - 1) & chr (1) & mid (stro, i + 1, len (stro) - i) e depois coloque #ffile, 1, strothis funcionou perfeitamente

Recomendado: