Tutorial para iniciante

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Tutorial para iniciante

Mensagem por fladimir »

Olá pessoal...

Olá iniciante... interessante seu Nick h1e1, me lembrei de STAR WARS R2-D2... C-3PO.... Kkkk talvez não tenha nada a ver mas lembra um pouco...

Vamos lá... (não vou falar do Xailer Kkk, mas agradeço a associação do Toledo)

Seguinte vou passar uma ideia de sequencia de aprendizado bem passo a passo, talvez até desnecessária pq vc já tem conhecimento de PHP etc, mas pode ter uma ideia e pular etapas q achar desnecessárias.

Com relação a linguagem aki tem um material q fala da linguagem xBase compilando com o Clipper, mas vc aproveita muito pra entender e compilar com Harbour/xHarbour

Depois na Seção Downloads e Contribuições/Dicas/Tutoriais tem várias rotinas interessantes, simples, muitas até pequenas e de fácil entendimento (após vc conhecer um pouco mais da linguagem no material acima por exemplo) vai te dando um entendimento mais amplo.

Ai vc prepara um ambiente como o q vc esta preparando tipo xHarbour ou Harbour (infelizmente o negócio é dividido, vc pode optar por 1 e seguir, seria melhor se fosse 1 só e ambos os times tivessem mantido 1 só etc, mas isso é muito pano pra OUTRA MANGA, não nosso assunto Ok.. Resumindo escolhe 1 e vai, lá na frente qdo tiver mais familiaridade se vc quiser mudar a gente te ajuda tb.)

Depois com um ambiente para compilar e linkar seus fontes (PRGs, C, CPP, CH, LIB, começa com um PRG simples e depois vai agregando, depois abrangemos melhor isto)

Ai vc monta um PRG tipo o abaixo pra ir testando os comandos e funções...

Código: Selecionar todos

/* Comentários podem ser assim, várias linhas ai começa com BARRA ASTERISCO 
   vc vai escrevendo...
   no caso o inicio do teu sistema vc chama de procedure Main ou function Main
   Ai depois de escrever teu comentário de várias linhas vc fecha com ASTERISCO BARRA
*/
procedure Main()
   cls // Limpa a Tela, perceba q aki é outro comentário na própria linha, mas após o comando CLS (limpar a tela - Modo Console/Texto), ai uso // ou &&

*-- no caso de comentar uma linha inteira vc pode começar com ASTERISCO 
*-- Vou mostrar 1 frase na tela

   @ 10,20 say 'Bom dia' // aki usei o comando @ ... say onde informo após o @ a linha q varia de 1 modo geral de 0 a 24 e a coluna de 0 a79 (não lembro se começa em 0 ou 1)

   nTempo := 10  // aki inicializei uma variável q não havia sido declarada previamente então ela automaticamente é do tipo PRIVATE (acredito q por ter conhecimento de PHP vc conheça sobre ESCOPO de variáveis)

   inkey(nTempo) // Aki usei uma função chamada Inkey e passei o parametro de Qtos Segundos vai aguardar, no caso aqui 10 segundos, se passo ZERO fica aguardando por tempo indeterminado 

// Poderia terminar aki ou no caso vou refazer a lógica acima chamando 1 função para retornar se é Bom dia, boa tarde ou boa noite
  
    CLS // limpa a tela
    @ 10,20 say Saudacao() // vai na função Saudação e traz o retorno dela
    
    inkey(nTempo) // Aguarda 10 segundos e continua

return

function Saudacao()
   local cHora := Time() // declarei a varivel cHora como local e inicializei ela com a Hora Atual através da função Time(), q retorna a hora como Caracter assim: 20:40:25
   local cRetorno := '' // declarei a variavel local cRetorno do tipo CARACTER conteúdo VAZIO

         *-- Se os 2 primeiro caracteres da hora forem < '12' então o retorno será Bom dia
         if Left(cHora, 2) < '12'
            cRetorno := "Bom dia"
         elseif Left(cHora, 2) >= '12' .AND. Left(cHora, 2) < '18' // Se estiver entre 12 e 17, o retorno será Boa tarde
            cRetorno := "Boa tarde"
         elseif Left(cHora, 2) >= '18' // Ou se for maior ou igual a 18 retorna Boa noite
             cRetorno := "Boa noite"
         endif
return cRetorno

/* se não errei nada vai rodar
Depois de estar mais familiarizado com os Comandos e Funções (com a linguagem em si), vc define um projetinho...

Tipo Cadastro de Clientes com:
Consulta, Alteração, Exclusão e um Relatório de Listagem de Clientes por exemplo.

E ai vc vai fazendo, tendo dúvidas e aprendendo etc...

Vamos se ajudando.

[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
h1e1
Usuário Nível 1
Usuário Nível 1
Mensagens: 22
Registrado em: 11 Fev 2015 18:22
Localização: Santa Bárbara D'Oeste

Tutorial para iniciante

Mensagem por h1e1 »

Olá fladmir!

Muito obrigado pela ajuda.

Já comecei a fuçar nele, estou usando o xDev como IDE e o fivewin como bibliteca gráfica.

E já veio outra dúvida rsrsrs :D

Como abre um PRG dentro de outro.

Abraço.
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Tutorial para iniciante

Mensagem por fladimir »

No xDev vc consegue criar um projeto, exemplo Controle de Clientes que irá gerar o executável ControlCli.exe

neste projeto vc consegue adicionar diversos PRGs, q irão conter suas Functions/Procedures etc

Ai neste projeto vc define qual PRG é o principal, exemplo MENU.PRG ou PRINCIPAL.PRG ou ainda MAIN.PRG

Ai lá dentro vc terá sua Function Main()

... linhas de código....
... Chamada de Procedures/Functions q estarão em outros PRGs.

Com relação ao XDev + Fivewin, acredito q vi algo ou aqui no fórum do Toledo ou no Fórum do Fivewin, mas com certeza o Kapiaba saberá informar tb.

respondendo sua pergunta como vc chama outro PRG, vc não chama outro prg, vc compila junto no seu projeto, o q vc chama são as functions / procedures q estarão dentro destes PRGs do teu projeto, seja ele utilizando o Fivewin ou outra lib ou nenhuma lib gráfica.

[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Tutorial para iniciante

Mensagem por Kapiaba »

Boa tarde, sobre xDev, não posso ajudar muito, pois não uso, veja se este link ajuda:

http://fivetechsupport.com/forums/viewt ... =3&t=25190

Agora, quanto a fivewin, pode perguntar na seção do fivewin aqui no forum, que terei prazer em responder, ou no fivewin brasil.

Abs.
Avatar do usuário
h1e1
Usuário Nível 1
Usuário Nível 1
Mensagens: 22
Registrado em: 11 Fev 2015 18:22
Localização: Santa Bárbara D'Oeste

Tutorial para iniciante

Mensagem por h1e1 »

Como procuro um caractere ou uma palavra dentro de uma linha?
E como faço um replace?

No xharbour =)

Abraço
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Tutorial para iniciante

Mensagem por Jairo Maia »

Acho que ficou muito vago sua dúvida. Para isso basta usar a função AT(), mas o que realmente você quer? Tem como postar um exemplo?
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
h1e1
Usuário Nível 1
Usuário Nível 1
Mensagens: 22
Registrado em: 11 Fev 2015 18:22
Localização: Santa Bárbara D'Oeste

Tutorial para iniciante

Mensagem por h1e1 »

Vou criar um sistema de cadastro de funções para documentação, que le o arquivo e vai procurando linha por linha se tem escrito "function" se tiver verificar se não é static.

O que faz replace achei a função STRTRAN().

De primeiro momento para achar a palavra estou usando SepStru() para dar um explode em cada palavras da linha.
Responder