Livro (e-book) Harbour
Moderador: Moderadores
Livro (e-book) Harbour
Pessoal, estou escrevendo, nas horas vagas, um e-book sobre introdução a programação usando Harbour. O público alvo são os aprendizes que não tem experiência com linguagens de programação e ppessoas sem muito conhecimento técnico . Os usuários que tem experiência podem se beneficiar também pois eu estou tendo o cuidado de seguir toda a sequencia dos livros de programação. Em anexo tem o que fiz até agora.
O formato é bem acadêmico pois estou aproveitando um template em latex que usei para publicar uma monografia que eu fiz. Depois eu posto os fontes em latex no github para quem quiser acrescentar algo.
O formato é bem acadêmico pois estou aproveitando um template em latex que usei para publicar uma monografia que eu fiz. Depois eu posto os fontes em latex no github para quem quiser acrescentar algo.
Livro (e-book) Harbour
Parabéns!!! com certeza é e será de grande valia...
Fiquei surpreso e lisongeado ao ver meu nickname nos agradecimentos em meio a tantos feras do fórum...
Eu / nós q agradecemos a toda comunidade q participa trocando idéias e contribuindo para o crescimento e compartilhamento do conhecimento.
[]´s
Fiquei surpreso e lisongeado ao ver meu nickname nos agradecimentos em meio a tantos feras do fórum...
Eu / nós q agradecemos a toda comunidade q participa trocando idéias e contribuindo para o crescimento e compartilhamento do conhecimento.
[]´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.
“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.
Livro (e-book) Harbour
Criei um repositório no github com os fontes do e-book e com o PDF também.
Vou ficar atualizando por lá e notificando aqui pelo fórum.
https://github.com/vlademiro/ebook-harbour
Vou ficar atualizando por lá e notificando aqui pelo fórum.
https://github.com/vlademiro/ebook-harbour
Livro (e-book) Harbour
Cara, Muuuito bom! Show! Parabéns1
Gosto muito dessa parte teórica pq com o passar dos anos a gente vai usando muita coisa sem ter um conhecimento 'adequado' da função ou comando. Até hj eu não sabia, por exemplo, a diferença entre FUNCTION e PROCEDURE.
Show
Jânio
(eterno aprendiz)
Gosto muito dessa parte teórica pq com o passar dos anos a gente vai usando muita coisa sem ter um conhecimento 'adequado' da função ou comando. Até hj eu não sabia, por exemplo, a diferença entre FUNCTION e PROCEDURE.
Show
Jânio
(eterno aprendiz)
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Livro (e-book) Harbour
Bom saber que lhe ajudou. :)Pos
Eu tb estou aprendendo enquanto escrevo.
E, sendo bem sincero, já cometi erros grotescos por falta de teoria.
Não como esse seu que, no final das contas, é irrelevante.
Por exemplo, eu não sabia que a função SELECT é diferente do comando SELECT
Isso me causou algumas dores de cabeça, só porque eu não tinha me dedicado um pouco mais nas leituras.
Vivendo e aprendendo.
Eu tb estou aprendendo enquanto escrevo.
E, sendo bem sincero, já cometi erros grotescos por falta de teoria.
Não como esse seu que, no final das contas, é irrelevante.
Por exemplo, eu não sabia que a função SELECT é diferente do comando SELECT
Isso me causou algumas dores de cabeça, só porque eu não tinha me dedicado um pouco mais nas leituras.
Código: Selecionar todos
FUNCTION MAIN()
LOCAL x
USE BRW
USE BRW_COL NEW
SELE BRW
x := SELECT( "BRW_COL" )
? x // A funçao SELECT retorna apenas o valor, mas não muda de área
? "A AREA ATUAL E ", ALIAS()
SELECT ("BRW_COL") // O comando SELECT muda de área
? "A AREA ATUAL E ", ALIAS()
// Apenas um espaço faz muita diferença SELECT( carea ) <> SELECT (carea)
RETURN NIL
Vivendo e aprendendo.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Livro (e-book) Harbour
Está bem didático, mas...
Vamos reclamar um pouquinho.... rs
Porque nos exemplos sempre define UTF-8 como codepage?
Tem exemplo com comando abreviado, isso é péssimo, porque exemplos costumam ser base pra outras coisas
Porque mostra parêntesis como sendo parte de PROCEDURE e mostra como equivalente a FUNCTION?
Não tem, por exemplo, isto:
Porque mostra exemplo de variáveis, e só depois fala sobre variáveis?
Porque mostra LOCAL x AS CHARACTER, se isso não é totalmente válido, pra não dizer que não serve pra nada?
Porque tem exemplo pra procurar erro de compilação que só ocorre se usar -w3 -es2, que talvez nem seja apresentado como erro?
Porque trata IF-ELSE-ELSEIF-ENDIF, e não faz o mesmo em DO CASE-CASE-OTHERWISE-ENDCASE?
Tipos de variáveis LOCAL, PRIVATE, PUBLIC, STATIC, acho que traduzir isso é um erro.
Aliás... apesar de costumarem traduzir PRIVATE pra PRIVADA, seria mais adequado PARTICULAR.
Como PRIVATE não tem nada de particular, melhor nem traduzir mesmo.
Aliás... o fórum também trata mensagens PRIVADAS, que são mensagens PARTICULARES.
Esse termo também é usado pelo governo, sobre empresas públicas e privadas, que seriam empresas públicas ou particulares.
Com os políticos atuais, a parte pública é que parece uma PRIVADA, grande e cheia.... rs
Vamos reclamar um pouquinho.... rs
Porque nos exemplos sempre define UTF-8 como codepage?
Tem exemplo com comando abreviado, isso é péssimo, porque exemplos costumam ser base pra outras coisas
Porque mostra parêntesis como sendo parte de PROCEDURE e mostra como equivalente a FUNCTION?
Não tem, por exemplo, isto:
Código: Selecionar todos
PROCEDURE Main
? 5
RETURN
Porque mostra LOCAL x AS CHARACTER, se isso não é totalmente válido, pra não dizer que não serve pra nada?
Porque tem exemplo pra procurar erro de compilação que só ocorre se usar -w3 -es2, que talvez nem seja apresentado como erro?
Porque trata IF-ELSE-ELSEIF-ENDIF, e não faz o mesmo em DO CASE-CASE-OTHERWISE-ENDCASE?
Tipos de variáveis LOCAL, PRIVATE, PUBLIC, STATIC, acho que traduzir isso é um erro.
Aliás... apesar de costumarem traduzir PRIVATE pra PRIVADA, seria mais adequado PARTICULAR.
Como PRIVATE não tem nada de particular, melhor nem traduzir mesmo.
Aliás... o fórum também trata mensagens PRIVADAS, que são mensagens PARTICULARES.
Esse termo também é usado pelo governo, sobre empresas públicas e privadas, que seriam empresas públicas ou particulares.
Com os políticos atuais, a parte pública é que parece uma PRIVADA, grande e cheia.... rs
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Livro (e-book) Harbour
Olhei novamente o manual, pra localizar aonde mostra isso, mas não encontrei.Até hj eu não sabia, por exemplo, a diferença entre FUNCTION e PROCEDURE
Talvez tenha passado direto.
Ia confirmar se foi mostrado como as variáveis são tratadas diferentes, mas não encontrei.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Livro (e-book) Harbour
Aproveitando....
Neste final de semana encontrei um erro no manual do Harbour (3.2/3.4)
doc/en/memo.txt
$SYNTAX$
hb_MemoWrit( <cFileName>, <cString>, [<lWriteEof>] ) --> lSuccess
...
<lWriteEof> Is a logic variable that settle if the "end of file"
character - Chr( 26 ) - is written to disk.
This parameter is optional. By default is true (.T.)
...
There is a third parameter (optional), <lWriteEof>, (not found in
CA-Cl*pper) which let to programmer change the default behavior of
- always - to write the EOF character, Chr( 26 ) as in CA-Cl*pper.
If there is no third parameter, nothing change, EOF is written as
in CA-Cl*pper, the same occurs when <lWriteEof> is set to .T.
But, if <lWriteEof> is set to .F., EOF char is Not written to the
end of the file.
...
hb_MemoWrit() vs MemoWrit():
hb_MemoWrit() never writes the obsolete EOF char at the end of the file.
no disco:
O ideal seria atualizar os documentos existentes no Harbour.
O difícil é pensar em português, e escrever em inglês.... rs
Não é tão simples quanto parece.
Nota: espero que seja erro no manual mesmo, se alterarem o funcionamento de hb_MemoWrit() ferrou.
Neste final de semana encontrei um erro no manual do Harbour (3.2/3.4)
doc/en/memo.txt
$SYNTAX$
hb_MemoWrit( <cFileName>, <cString>, [<lWriteEof>] ) --> lSuccess
...
<lWriteEof> Is a logic variable that settle if the "end of file"
character - Chr( 26 ) - is written to disk.
This parameter is optional. By default is true (.T.)
...
There is a third parameter (optional), <lWriteEof>, (not found in
CA-Cl*pper) which let to programmer change the default behavior of
- always - to write the EOF character, Chr( 26 ) as in CA-Cl*pper.
If there is no third parameter, nothing change, EOF is written as
in CA-Cl*pper, the same occurs when <lWriteEof> is set to .T.
But, if <lWriteEof> is set to .F., EOF char is Not written to the
end of the file.
...
hb_MemoWrit() vs MemoWrit():
hb_MemoWrit() never writes the obsolete EOF char at the end of the file.
Código: Selecionar todos
PROCEDURE Main
hb_MemoWrit( "A", "A" )
hb_MemoWrit( "B", "B", .F. )
hb_MemoWrit( "C", "C", .T. )
MemoWrit( "D", "D" )
RETURN
Código: Selecionar todos
14/08/2016 12:53 1 A
14/08/2016 12:53 1 B
14/08/2016 12:53 1 C
14/08/2016 12:53 2 D
O difícil é pensar em português, e escrever em inglês.... rs
Não é tão simples quanto parece.
Nota: espero que seja erro no manual mesmo, se alterarem o funcionamento de hb_MemoWrit() ferrou.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Livro (e-book) Harbour
Quintas, vou dar uma olhada nas suas observações, depois eu dou um retorno.
Valeu
Valeu
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Livro (e-book) Harbour
A diferença básica entre PROCEDURE e FUNCTION é que PROCEDURE não retorna nada, e FUNCTION retorna alguma coisa.
Geralmente em PROCEDURE usávamos PARAMETERS, que cria variáveis PRIVATE, apesar que FUNCTION também aceitava e ainda deve aceitar isso.
Já como parêntesis, as variáveis são tratadas como LOCAL.
A diferença é que LOCAL só existe dentro da rotina, e PRIVATE existe a partir daquela rotina e sub-rotinas, só desaparecendo quando sair da rotina que a "criou".
Isso faz muita diferença quando se tem rotina chamando rotina, chamando rotina, chamando rotina, etc. etc. etc. onde usar o mesmo nome pode interferir no valor de rotina anterior. Ou, sendo mais prático, quando o aplicativo vai crescendo, e começa a repetir nomes, declarar como LOCAL faz toda a diferença.
Geralmente em PROCEDURE usávamos PARAMETERS, que cria variáveis PRIVATE, apesar que FUNCTION também aceitava e ainda deve aceitar isso.
Já como parêntesis, as variáveis são tratadas como LOCAL.
Código: Selecionar todos
PROCEDURE Teste
PARAMETERS a, b
...
FUNCTION Teste( a, b )
...
Isso faz muita diferença quando se tem rotina chamando rotina, chamando rotina, chamando rotina, etc. etc. etc. onde usar o mesmo nome pode interferir no valor de rotina anterior. Ou, sendo mais prático, quando o aplicativo vai crescendo, e começa a repetir nomes, declarar como LOCAL faz toda a diferença.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Livro (e-book) Harbour
Vou postar as respostas. Só agora vi que vc postou algo sobre as variáveis, mas vou manter a postagem original que eu redigi no Notepad e vim aqui colar.
Segue :
* ) Porque nos exemplos sempre define UTF-8 como codepage?
Motivo 1 )
Lá no tópico 2.2.1 Uma pequena pausa para a acentuação correta tem o trecho onde eu abordo essa
questão. Alguns trechos eu resolvi adiantar para criar logo um padrão de codificação.
O público alvo é o desenvolvedor que está começando e que poderá
também usar os conhecimentos adquiridos em outras linguagens que ele possa
vir a aprender no futuro.
Atualmente esse padrão de codificação é recomendado
por vários desenvolvedores de softwares.
Por exemplo :
https://developer.gnome.org/integratio ... tml.pt_BR
https://www.w3.org/International/quest ... ngs.pt-br
(faça uma busca por UTF-8 ou UTF8 nessas páginas que da para encontrar referencias
a essa nova forma de codificar. Eles claramente estão dando prioridade a ela)
É claro que as codificações vigentes não sairão de cena, mas UTF-8 parece que está
se estabelecendo como um principal padrão para troca de dados.
--------------------------------------------------------------------------------------------------
Eu penso assim, deixar os códigos em UTF-8 mas criar um apêndice explicando como mudar para as
outras codificações como a (WIN)ANSI e o velho padrão do DOS (esqueci o nome dele, acho eque é OEM).
--------------------------------------------------------------------------------------------------
Motivo 2 ) Eu estou preparando um material com os códigos e eu estou usando o UTF-8 neles. Já tem bastante
código digitado. Se alguém me ajudar a gente pode deixar tudo em outra codificação, mas tem que alterar
todos os fontes de exemplo. Não sei se vale a pena ficar com uma codificação que está sendo claramente preterida.
* ) Tem exemplo com comando abreviado, isso é péssimo, porque exemplos costumam ser base pra outras coisas
Tem razão, com certeza eu me enganei. Eu até programo SET DATE BRIT, mas lá eu coloco sempre SET DATE BRITISH.
Eu não encontrei esse comando. Daria pra vc me mostrar copiando e colando o trecho ?
* ) Porque mostra parênteses como sendo parte de PROCEDURE e mostra como equivalente a FUNCTION?
Posso acrescentar essa forma lá. Eu só vou abordar a diferença nos tópicos sobre funções.
* ) Porque mostra exemplo de variáveis, e só depois fala sobre variáveis?
Sim, eu adiantei alguns conceitos, como uma pequena introdução as funções (para mostrar a codificação) e também as variáveis, para
tornar alguns exemplos mais interessantes. A geração Y (convivo com ela todos os dias no trabalho) tem pressa e eu não quero
que fique muito enfadonho até chegar nas estruturas de controle e de repetição.
Vou mudar a parte das variáveis para o próximo capítulo, mas a pequena introdução as funções acho que da pra deixar como está.
Ainda bem que o latex permite essas mudanças sem muita dificuldade.
* ) Porque mostra LOCAL x AS CHARACTER, se isso não é totalmente válido, pra não dizer que não serve pra nada?
Eu resolvi fazer assim porque acho que é a forma que irá prevalecer daqui para frente. No final do capítulo sobre variáveis eu
abordo isso e deixo claro que ainda é um recurso que está sendo implantado. Andei postando no forum dos desenvolvedores, mas eu
não obtive nenhuma previsão sobre a adoção dessa nova forma. Vou perguntar de novo por lá.
* ) Porque trata IF-ELSE-ELSEIF-ENDIF, e não faz o mesmo em DO CASE-CASE-OTHERWISE-ENDCASE?
Eu descrevi essas estruturas corretamente, só que em alguns pontos eu não coloquei o nome correto. Vou ter que mudar lá.
* ) Tipos de variáveis LOCAL, PRIVATE, PUBLIC, STATIC, acho que traduzir isso é um erro.
Essa parte vai ser revista, eu apenas movi para o final do livro porque será um dos últimos assuntos. Para entender totalmente
esses conceitos precisa entender primeiro o que é sub-rotina (função) para depois partir para esses conceitos de escopo e tempo
de vida da variável.
RESUMINDO TUDO
1 ) UTF-8 : deixa como está, mas cria um apêndice esclarecendo os outros padrões.
2 ) Comandos abreviados : Vou mudar, mas se vc me ajudar colando o trecho eu agradeço
3 ) Parênteses em procedure : vou acrescentar a forma sem parenteses e deixar como principal. Mas eles reaparecerão com os parâmetros. Tem que revisar bem direitinho.
4 ) Formato novo de declaração de variável (AS CHARACTER) : Vou ver com o fórum de desenvolvedores. Se não houver previsão ou demorar muito eu tiro.
5 ) Formato CASE e IF : Vou procurar o ponto e alterar
6 ) Variáveis LOCAL, PRIVATE, etc. Essa parte ainda será revisada totalmente. Os livros de Clipper (Ramalho, Vidal, etc.) traduzem esses termos, tem que ver se os outros autores também fazem assim. Não queria me distanciar muito do estilo deles.
Obrigado pelas observações. :xau
Segue :
* ) Porque nos exemplos sempre define UTF-8 como codepage?
Motivo 1 )
Lá no tópico 2.2.1 Uma pequena pausa para a acentuação correta tem o trecho onde eu abordo essa
questão. Alguns trechos eu resolvi adiantar para criar logo um padrão de codificação.
O público alvo é o desenvolvedor que está começando e que poderá
também usar os conhecimentos adquiridos em outras linguagens que ele possa
vir a aprender no futuro.
Atualmente esse padrão de codificação é recomendado
por vários desenvolvedores de softwares.
Por exemplo :
https://developer.gnome.org/integratio ... tml.pt_BR
https://www.w3.org/International/quest ... ngs.pt-br
(faça uma busca por UTF-8 ou UTF8 nessas páginas que da para encontrar referencias
a essa nova forma de codificar. Eles claramente estão dando prioridade a ela)
É claro que as codificações vigentes não sairão de cena, mas UTF-8 parece que está
se estabelecendo como um principal padrão para troca de dados.
--------------------------------------------------------------------------------------------------
Eu penso assim, deixar os códigos em UTF-8 mas criar um apêndice explicando como mudar para as
outras codificações como a (WIN)ANSI e o velho padrão do DOS (esqueci o nome dele, acho eque é OEM).
--------------------------------------------------------------------------------------------------
Motivo 2 ) Eu estou preparando um material com os códigos e eu estou usando o UTF-8 neles. Já tem bastante
código digitado. Se alguém me ajudar a gente pode deixar tudo em outra codificação, mas tem que alterar
todos os fontes de exemplo. Não sei se vale a pena ficar com uma codificação que está sendo claramente preterida.
* ) Tem exemplo com comando abreviado, isso é péssimo, porque exemplos costumam ser base pra outras coisas
Tem razão, com certeza eu me enganei. Eu até programo SET DATE BRIT, mas lá eu coloco sempre SET DATE BRITISH.
Eu não encontrei esse comando. Daria pra vc me mostrar copiando e colando o trecho ?
* ) Porque mostra parênteses como sendo parte de PROCEDURE e mostra como equivalente a FUNCTION?
Posso acrescentar essa forma lá. Eu só vou abordar a diferença nos tópicos sobre funções.
* ) Porque mostra exemplo de variáveis, e só depois fala sobre variáveis?
Sim, eu adiantei alguns conceitos, como uma pequena introdução as funções (para mostrar a codificação) e também as variáveis, para
tornar alguns exemplos mais interessantes. A geração Y (convivo com ela todos os dias no trabalho) tem pressa e eu não quero
que fique muito enfadonho até chegar nas estruturas de controle e de repetição.
Vou mudar a parte das variáveis para o próximo capítulo, mas a pequena introdução as funções acho que da pra deixar como está.
Ainda bem que o latex permite essas mudanças sem muita dificuldade.
* ) Porque mostra LOCAL x AS CHARACTER, se isso não é totalmente válido, pra não dizer que não serve pra nada?
Eu resolvi fazer assim porque acho que é a forma que irá prevalecer daqui para frente. No final do capítulo sobre variáveis eu
abordo isso e deixo claro que ainda é um recurso que está sendo implantado. Andei postando no forum dos desenvolvedores, mas eu
não obtive nenhuma previsão sobre a adoção dessa nova forma. Vou perguntar de novo por lá.
* ) Porque trata IF-ELSE-ELSEIF-ENDIF, e não faz o mesmo em DO CASE-CASE-OTHERWISE-ENDCASE?
Eu descrevi essas estruturas corretamente, só que em alguns pontos eu não coloquei o nome correto. Vou ter que mudar lá.
* ) Tipos de variáveis LOCAL, PRIVATE, PUBLIC, STATIC, acho que traduzir isso é um erro.
Essa parte vai ser revista, eu apenas movi para o final do livro porque será um dos últimos assuntos. Para entender totalmente
esses conceitos precisa entender primeiro o que é sub-rotina (função) para depois partir para esses conceitos de escopo e tempo
de vida da variável.
RESUMINDO TUDO
1 ) UTF-8 : deixa como está, mas cria um apêndice esclarecendo os outros padrões.
2 ) Comandos abreviados : Vou mudar, mas se vc me ajudar colando o trecho eu agradeço
3 ) Parênteses em procedure : vou acrescentar a forma sem parenteses e deixar como principal. Mas eles reaparecerão com os parâmetros. Tem que revisar bem direitinho.
4 ) Formato novo de declaração de variável (AS CHARACTER) : Vou ver com o fórum de desenvolvedores. Se não houver previsão ou demorar muito eu tiro.
5 ) Formato CASE e IF : Vou procurar o ponto e alterar
6 ) Variáveis LOCAL, PRIVATE, etc. Essa parte ainda será revisada totalmente. Os livros de Clipper (Ramalho, Vidal, etc.) traduzem esses termos, tem que ver se os outros autores também fazem assim. Não queria me distanciar muito do estilo deles.
Obrigado pelas observações. :xau
Livro (e-book) Harbour
Quintas, faltou essa :
Porque tem exemplo pra procurar erro de compilação que só ocorre se usar -w3 -es2, que talvez nem seja apresentado como erro?
Não achei esse falso erro. Todos os exemplos que tem erros de compilação realmente não compilam, independente de qual warning vc coloque. Esse aí vc tem que me mostar pois eu não estou encontrando.
Valeu
Porque tem exemplo pra procurar erro de compilação que só ocorre se usar -w3 -es2, que talvez nem seja apresentado como erro?
Não achei esse falso erro. Todos os exemplos que tem erros de compilação realmente não compilam, independente de qual warning vc coloque. Esse aí vc tem que me mostar pois eu não estou encontrando.
Valeu
Livro (e-book) Harbour
Vlademiro, meu conterrâneo cearense hehehe
Uma sugestão: acredito que também para o iniciamente, que é pra quem se destina seu e-book, seria bom um capítulo sobre a montagem do ambiente para compilação (isso eh chato pra caramba hehe), com links para baixar o Harbour 3.2 (acredito que é o mais usado) e também o compilador MinGW, com os respectivos ajustes do path,
Janio
Uma sugestão: acredito que também para o iniciamente, que é pra quem se destina seu e-book, seria bom um capítulo sobre a montagem do ambiente para compilação (isso eh chato pra caramba hehe), com links para baixar o Harbour 3.2 (acredito que é o mais usado) e também o compilador MinGW, com os respectivos ajustes do path,
Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Livro (e-book) Harbour
O mais comum em qualquer linguagem de programação é usar o padrão - default - que a linguagem já tem.1 ) UTF-8 : deixa como está, mas cria um apêndice esclarecendo os outros padrões.
Quando esse leitor for olhar um aplicativo pronto, a primeira coisa que ele vai descobrir é que isso que viu no livro não está no fonte.
A segunda coisa, talvez, será estragar todo visual do aplicativo colocando UTF-8.
E talvez a terceira, seja descobrir que editores de texto não servem pra misturar codepages, e talvez seja tarde demais.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/

