Ir ao conteúdo

Posts recomendados

Postado

somente por motivo de curiosidade e já me preparando

Como ficaria esse tipo de codigo em C ?

 

é vba

Ou:        '-------------------------------------------------------------------    '@Ou(#Data,%Semana,1,2,3)    For L = LxO To 1 Step -1        If ResulFolm(L, 1) <> 2 Then            For c = Cid To Cfd                v = ColunO(L, c)                If Tipo <> "" Then                   call Convert_tipo( v, Tipo)'é uma função de conversão de valor                End If                For C2 = 1 To UBound(Comand)                    If v = Comand(C2) Then                        ResulFolm(L, 1) = 1    ' True                        GoTo pula_Ou                    End If                Next            Next            ResulFolm(L, 1) = 2    ' False        End Ifpula_Ou:    Next    ReturnE:        '------------------------------------------------------------------------------

Desculpa o uso do Goto , mas ainda não descobri uma maneira de pular todas as linhas quando não forem mais necessárias

Postado

"Se você fala que vb é de outro mundo, o que eu digo quando vejo os programas em C ?"  mas é uma barreira linguística que estou querendo quebrar

se bem que para mim é muito mais intuitivo "for n=1 to 10" contar de 1 até 10 e colocar o valor em n, do que for (i=0; i<5; i++)

se bem que pelo que vi o C dá muito mais ferramentas e opções para loop arrays e comparações que é o que eu mais gosto de brincar, mas em contra partida de maneira muito mais complexa

 

Bem em vb também desaconselham o uso do goto e do gosub

mas é da época que o pessoal programava tipo espaguete

como eu faço muito o uso de loops arrays e if then acabo usando o goto para pular todas as instruções quando não são mais necessárias

 

mas explicando o codigo seria mais ou menos isso

Ou:   <<<Label para o gosub que chama o trecho ouLxO=10     For L = LxO To 1 Step -1 '<<--- for (L = LxO; L >= 1; L--) "acho que seria isso"        If ResulFolm(L, 1) <> 2 Then <<-- if (ResulFolm[L][1]<>2)                      For c = Cid To Cfd     '<<---for (c = Cid ; L < Cfd ; L++)                v = ColunO(L, c)    '<<--- V == ColunO[L][1]                If Tipo <> "" Then <<-- if ( Tipo <> "" )                   call Convert_tipo( v, Tipo)'é uma função de conversão de valor, "essa não descobri"                End If                For C2 = 1 To UBound(Comand)  '<<---Conta de 1   até o final da array comand, como saber o tamanho de um array ?                    If v = Comand(C2) Then '<<-- se valor de v = ao valor de comand                        ResulFolm(L, 1) = 1  'adiciona o valor 1 na array ResulFolm                        GoTo pula_Ou <<--- pula os loop que não são mais necessários (função (OU) qualquer valor verdadeiro já passa no teste)                    End If                Next            Next            ResulFolm(L, 1) = 2   <<-- se varrer todas as colunas e não achar algum valor maque como false(valor2)        End Ifpula_Ou: Label(badeira) para o goto que pula os loops desnecessarios    Next    Return retorna para depois do Gosub que chamou 

estou fazendo uma macro que funciona como o Select do SQL para trabalhar com os dados da minha planilha

 mas ainda estou perdido nas formulas apesar de conseguir separar as partes

Postado

hum, switchs são os Case certo, vb também tem

Obs. eu não faço VB é apenas VBA ( PARA EXCEL)  limitado ao programa

 

sobre erros de programação eu já escutei(Li) alguns discursos acalorados sobre goto, gosub e variáveis publicas, nomes de variaveis muito curtos "a maioria com apenas 2 ou 3 letras até mesmo em uma macro de quase 500 linha, umas 50 variáveis de 3 letras , um punhado de Gosub que controla o fluxo e apenas 1 For

 

mas não vou entrar em discussão sobre meu achismo sobre o assunto.

 

 

Mas como você sairia de um monte de linhas desnecessárias ?

For 1

if

for 2

if

fi

for 3

fof 4

for  5

if true --->>>--- pule para o for 3 " no caso a contagem de for 4 e 5 é zerada

if  false --->>--- pule para o for 1 " no caso a contagem de for 2, 3 , 4 e 5 é zerada

 

eu ainda não descobri uma maneira de se fazer isso facilmente sem usar o goto

claro que tem o exit if, exit for ...

mas para se sair da cascata seria trabalhoso

 

Até

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!