Jump to content
Fivewin Brasil

valdmir

Membros
  • Posts

    15
  • Joined

  • Last visited

valdmir's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. ArqOrigem := "F:\CVS_FORUM\testedecopiadediretoriolongo\Servidor_Arquivos\teste de arquivo.txt" ArqDestino:= "F:\CVS_FORUM\testedecopiadediretoriolongo\Servidor_Arquivos\teste de Destino.txt" CopyFile(ArqOrigem,ArqDestino)
  2. Bem, eu trabalho com sistemas para laboratorios. Então algumas perguntas a vc. 1º Você imprime o Laudo com a imagem da assinatura? 2º Qual o Formato de Impressão. (É pdf) 3º O laboratório tem página na internet e ou disponibiliza os laudos na internet. 4º Caso sim, seu sistema faz envio de laudos para internet automático. FELIZ NATAL a todos. Valdmir O Lopes Uniware Consultoria em Informática www.labanalisesclinicas.com.br www.uniware.com.br
  3. Use : -> GT_CHRCOUNT(v1,v2) Pelo que ví, a função já existe,mas senão tiver pode usar a de baixo. #pragma BEGINDUMP #include #include #include #include #include HB_FUNC( GT_CHRCOUNT ) { char *s1, *s2; int count, pos2, len; if (ISCHAR(1) && ISCHAR(2)) { s1 = hb_parc(1); s2 = hb_parc(2); len = hb_parclen(2); for (count = 0, pos2 = 1; pos2 <= len; s2++, pos2++) if (*s1 == *s2) count++; hb_retni(count); } else { hb_retni(-1); } } #pragma ENDDUMP
  4. Cara, eu dei uma explicação monstro sobre isso, mas não tinha feito o login ainda e perdi tudo, huahauha. Agora vou resumir. Não funciona quando: -> Se voce especificar na string de acesso ao BD o ip remoto ou fictício "fulano.no-ip.org" e fizer o acesso de uma maquina que está rodando local na rede do seu server. -> O acesso do BD é via socket, ou seja, se vc mudar o ip real do seu server, ele não vai mudar internamente, dentro da sua rede. Ex.: (Server 2003 - IP := 192.168.0.100) - Real interno fulano.no-ip.org := 123.45.200.154 - Fictício Internet Se o seu acesso ao BD não passar pelo modem, não vai existir o fulano.no-ip.org, pq, simplesmente pq vc está acessando localmente, então na sua rede interna o seu servidor é 192.168.0.100 e não existe 123.45.200.154 (no-ip), porque~vc não passa pelo modem para acessar o seu server. Então para funcionar vc deve criar uma condição de : Se for Acesso em rede local - "192.168.0.100" e se for remoto "fulano.no-ip.org" na string de conecção com o BD. Eu tenho esse problema pq faço muitas coisas via sockets e acontece sempre esse erro. bom como todos esta é a minha opinião e minha experiência no assunto. Se alguém sabe de alguma mágica aí, fora criar proxy, dá uma luz pra mim, que talvez sirva pro meu problema de comunicação via sockets. Abç Editado por - valdmir on 09/02/2009 04:21:37
  5. Ola, gostaria de saber a possibilidade de converter esta funcao para o BCC, gostaria de usala dentro de um sistema. Eu fiz a função, esta funcionando, mas sem usar o virtualqueryex, o que a deixa lenta. Então gostaria de saber se tem como usar ele no BCC, se o MEMORY_BASIC_INFORMATION e o getsysteminfo funcionam adequadamente. Ou se o fivewin inpede este uso . Pois em meus testes não consegui. Postei o codigo original q esta funcionando pois preciso deste tipo de busca pois é muito mais rápida. Obrigado. PS, tive alguns problemas quanto ao tipo da variavel usada, tentei denifir uma com um tipo definido por mim DWORD. Mas dai nao aloca pelo virtualmemex. citação:namespace Pesquisaliteral { public class LiteralSearcher : Searcher { public LiteralSearcher(int PID) : base(PID) { } public override event SearchFinished SearchFinished; public override event SearchProgressChanged SearchProgressChanged; public override event SearchError SearchError; void h_SearchProgressChanged(string progress) { } void h_SearchFinished() { } public override void Search() { Results.Clear(); SearchFinished += new SearchFinished(h_SearchFinished); SearchProgressChanged += new SearchProgressChanged(h_SearchProgressChanged); byte[] text = (byte[])Params["text"]; int handle = 0; int address = 0; Win32.MEMORY_BASIC_INFORMATION info = new Win32.MEMORY_BASIC_INFORMATION(); int count = 0; if (text.Length == 0) { SearchFinished(); return; } handle = Win32.OpenProcess(Win32.PROCESS_RIGHTS.PROCESS_VM_READ | Win32.PROCESS_RIGHTS.PROCESS_QUERY_INFORMATION, 0, PID); if (handle == 0) { SearchError("Could not open process: " + Win32.GetLastErrorMessage()); return; } while (true) { if (Win32.VirtualQueryEx(handle, address, ref info, Marshal.SizeOf(typeof(Win32.MEMORY_BASIC_INFORMATION))) == 0) { break; } else { address += info.RegionSize; // skip unreadable areas if (info.Protect == Win32.MEMORY_PROTECTION.PAGE_ACCESS_DENIED) continue; if (info.Protect == Win32.MEMORY_PROTECTION.PAGE_ACCESS_DENIED) continue; if (info.State != Win32.MEMORY_STATE.MEM_COMMIT) continue; if (info.Type == Win32.MEMORY_TYPE.MEM_PRIVATE) continue; if (info.Type == Win32.MEMORY_TYPE.MEM_IMAGE) continue; if (info.Type == Win32.MEMORY_TYPE.MEM_MAPPED) continue; byte[] data = new byte[info.RegionSize]; int bytesRead = 0; this.SearchProgressChanged( String.Format("Searching 0x{0:x8} ({1} found)...", info.BaseAddress, count)); Win32.ReadProcessMemory(handle, info.BaseAddress, data, info.RegionSize, ref bytesRead); if (bytesRead == 0) continue; for (int i = 0; i < bytesRead; i++) { bool good = true; for (int j = 0; j < text.Length; j++) { if (i + j > bytesRead - 1) continue; if (data[i + j] != text[j]) { good = false; break; } } if (good) { Results.Add(new string[] { String.Format("0x{0:x8}", info.BaseAddress), String.Format("0x{0:x8}", i), text.Length.ToString(), "" }); count++; i += text.Length - 1; } } data = null; } } Win32.CloseHandle(handle); SearchFinished(); } } } id=quote>id=quote>
  6. Ola, gostaria de saber a possibilidade de converter esta funcao para o BCC, gostaria de usala dentro de um sistema. Eu fiz a função, esta funcionando, mas sem usar o virtualqueryex, o que a deixa lenta. Então gostaria de saber se tem como usar ele no BCC, se o MEMORY_BASIC_INFORMATION e o getsysteminfo funcionam adequadamente. Ou se o fivewin inpede este uso . Pois em meus testes não consegui. Postei o codigo original q esta funcionando pois preciso deste tipo de busca pois é muito mais rápida. Obrigado. PS, tive alguns problemas quanto ao tipo da variavel usada, tentei denifir uma com um tipo definido por mim DWORD. Mas dai nao aloca pelo virtualmemex. citação:namespace Pesquisaliteral { public class LiteralSearcher : Searcher { public LiteralSearcher(int PID) : base(PID) { } public override event SearchFinished SearchFinished; public override event SearchProgressChanged SearchProgressChanged; public override event SearchError SearchError; void h_SearchProgressChanged(string progress) { } void h_SearchFinished() { } public override void Search() { Results.Clear(); SearchFinished += new SearchFinished(h_SearchFinished); SearchProgressChanged += new SearchProgressChanged(h_SearchProgressChanged); byte[] text = (byte[])Params["text"]; int handle = 0; int address = 0; Win32.MEMORY_BASIC_INFORMATION info = new Win32.MEMORY_BASIC_INFORMATION(); int count = 0; if (text.Length == 0) { SearchFinished(); return; } handle = Win32.OpenProcess(Win32.PROCESS_RIGHTS.PROCESS_VM_READ | Win32.PROCESS_RIGHTS.PROCESS_QUERY_INFORMATION, 0, PID); if (handle == 0) { SearchError("Could not open process: " + Win32.GetLastErrorMessage()); return; } while (true) { if (Win32.VirtualQueryEx(handle, address, ref info, Marshal.SizeOf(typeof(Win32.MEMORY_BASIC_INFORMATION))) == 0) { break; } else { address += info.RegionSize; // skip unreadable areas if (info.Protect == Win32.MEMORY_PROTECTION.PAGE_ACCESS_DENIED) continue; if (info.Protect == Win32.MEMORY_PROTECTION.PAGE_ACCESS_DENIED) continue; if (info.State != Win32.MEMORY_STATE.MEM_COMMIT) continue; if (info.Type == Win32.MEMORY_TYPE.MEM_PRIVATE) continue; if (info.Type == Win32.MEMORY_TYPE.MEM_IMAGE) continue; if (info.Type == Win32.MEMORY_TYPE.MEM_MAPPED) continue; byte[] data = new byte[info.RegionSize]; int bytesRead = 0; this.SearchProgressChanged( String.Format("Searching 0x{0:x8} ({1} found)...", info.BaseAddress, count)); Win32.ReadProcessMemory(handle, info.BaseAddress, data, info.RegionSize, ref bytesRead); if (bytesRead == 0) continue; for (int i = 0; i < bytesRead; i++) { bool good = true; for (int j = 0; j < text.Length; j++) { if (i + j > bytesRead - 1) continue; if (data[i + j] != text[j]) { good = false; break; } } if (good) { Results.Add(new string[] { String.Format("0x{0:x8}", info.BaseAddress), String.Format("0x{0:x8}", i), text.Length.ToString(), "" }); count++; i += text.Length - 1; } } data = null; } } Win32.CloseHandle(handle); SearchFinished(); } } } id=quote>id=quote>
  7. Cara, vou te falar uma coisa, eu sempre leio, mas nunca posto nada, uso o FW e FWH a 5 anos, tenho vários sistemas escritos com ele. E vou te falar uma coisa. Vc é o bicho, rsrsrsrsr. Não pude deixar de postar hj, num aguentei. rsrsrsrs Parabéns mesmo. Mas tb aproveitando q não sou de postam muito mesmo. A toda a galera, muito obrigado por muitas informações q prestaram até hj aqui, mesmo os erros cometidos, foram de grande valia desde q comecei a ler este forum. As vezes até penso em alguns como sendo velhos conhecidos, mesmo sem saber q eu existo. huahauhauhauha. Um grande abraço a todos.
  8. Existe 1 cabo para 1 placa de video -> 2 monitores e sao encontrados facilmente em lojas de venda computadores. A imagem é a mesma nos 2 monitores. Utilizo isto a mais de 2 anos em salas de audiencia onde preciso mostrar a informação a 2 grupos de pessoas. OK
  9. alguém usa esta lib c/ FWH 8.01, baixei a lib para usar com FWH 7.01, mas estava dando uns erros de PCODE, então atualizei o FWH para 8.01, e agora : Turbo Incremental Link 5.00 Copyright © 1997, 2000 Borland Error: Unresolved external '_HB_PCREPOS_LIBRARY' referenced from C:\XHARBOUR\LIB \RTL.LIB|regex se alguem puder me ajudar. Feriado de carnaval é bravo, suporte......... mas fazer o que né. Abraço
  10. alguém usa esta lib c/ FWH 8.01, baixei a lib para usar com FWH 7.01, mas estava dando uns erros de PCODE, então atualizei o FWH para 8.01, e agora : Turbo Incremental Link 5.00 Copyright © 1997, 2000 Borland Error: Unresolved external '_HB_PCREPOS_LIBRARY' referenced from C:\XHARBOUR\LIB \RTL.LIB|regex se alguem puder me ajudar. Feriado de carnaval é bravo, suporte......... mas fazer o que né. Abraço
  11. resolvi muitos erros que davam no sistema com xHarbour Comercial incluindo a lib version.lib que esta na pasta ?:\Xhb\c_lib\Win\version.lib Espero que te ajude. Valdmir Lopes
  12. Qual o valor, e aonde faço o pedido. alguém poderia me informar. Grato Valdmir
  13. Corrigindo o Exemplo: Function Main() Local oApp := tIncPro() // PS. Pode ser outro tipo de variavel OK. Suas aplicacao oApp:_var1 := 10 // ou em GET ou SAY e etc... return NIL CLASS tIncPro DATA _var1 INIT 0 DATA _var2 INIT space(10) DATA _Var3 INIT { 10,20,30 } ENDCLASS Burrice mesmo, pensei em uma variavel e escrevi a outra. rsrsrsrsrs
  14. Apesar de não usar mais esse tipo de declaração, lhe passo como iria solucionar: Você definiu a variável MGRUPO como LOCAL e devera passá-la por referência (com @) e para atualizá-la dar um Update na Janela. As alterações ficariam assim : @ 04,08 GET OGET1 VAR MGRUPO UPDATE PICTURE "999" VALID VGRUPO(@MGRUPO,MINCPRO,MINCPRO) OF MINCPRO FUNCTION VGRUPO(MGRUPO,MINCPRO,oDlg) IF MGRUPO=0 SET ORDER TO 2 CONGRU() MGRUPO:=VAL(GRUPOS->CODIGO) SET ORDER TO 1 ENDIF SELE GRUPOS SEEK STR(MGRUPO,3) IF EOF() RETURN .F. ENDIF *oGet1:Disable() /* OGET1:REFRESH() OGET2:SETFOGUS() */ @ 07,28 SAY GRUPOS->DESC OF MINCPRO oDlg:Update() RETURN .T. Isso deve resolver, mas eu também não utilizaria o SAY la da função VGRUPO, colocaria na Janela principal e atualizaria com o SetText. Uma Dica extra, passe a utilizar variáveis atravéz de classes é facil, rápido, e deixa o programa com outra cara. Você não vai ter uma serie de problemas. Ex.: Function Main() Local oApp:tIncPro() // PS. Pode ser outro tipo de variavel OK. Suas aplicacao tIncPro:_var1 := 10 // ou em GET ou SAY e etc... return NIL CLASS tIncPro DATA _var1 INIT 0 DATA _var2 INIT space(10) DATA _Var3 INIT { 10,20,30 } ENDCLASS Abraços, espero ter te ajudado. Valdmir Clipper5.3b+Blink7+FW2.5 FWH 2.5 PELLES 3.00.4 xHarbor 0.99.3, Drive RDDSQL
  15. Toda vez que usamos "muitas variaveis" (como voce disse), tende-se a ocorrer erros que normalmente nao achamos. Voce poderia usar CLASSES para definir suas variaveis, fica bem mais facil de se localizar e ocorrem muito menos erros. EX.: Stat Func blabla() Loca cLocal := tLocal() cLocal:_Var1 := (10*20)/2 cLocal:_Var2 := "Teste de Classes" ( e etc...) return (NIL) /* Classe Generica de Exemplo */ CLASS tLocal DATA _Var1 INIT 0 DATA _Var2 INIT space(10) DATA _Varx INIT date() ENDCLASS É uma idéia. Valdmir Lopes Fw 2.5 Clipper 5.3B Blinker 7.0 - xHarbour Comercial 0.99.50 - FwH 2.5
×
×
  • Create New...