Clipper On Line • Ver Tópico - Como abrir/Executar um arquivo de texto?

Como abrir/Executar um arquivo de texto?

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

 

Como abrir/Executar um arquivo de texto?

Mensagempor Daiane » 30 Mar 2017 09:49

Olá amigos,procurei em toda parte mas so achei como ler arquivo de texte
eu quero que abra um arquivo do notepad++
tentei o Run('Start Caminho' ) mas so funciona se o arquivo tiver no C:

Alguem tem alguma dica?
XHb 1.2.1 + FW 12.05 + Pelles C IDE
"Eu adoraria mudar o mundo, mas não me deram o código-fonte."
Avatar de usuário

Daiane
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 122
Data de registro: 28 Out 2014 15:19
Cidade/Estado: Feira de Santana - BA
Curtiu: 27 vezes
Mens.Curtidas: 13 vezes

Como abrir/Executar um arquivo de texto?

Mensagempor Kapiaba » 30 Mar 2017 09:55

   LOCAL cFile

   cFile := cFilePath( GetModuleFileName( GetInstance() ) ) + "CARTA.TXT"

   REDEFINE BUTTON oTextoCarta  ID 1002 OF oDlg ;
            ACTION( WinExec( "Notepad.exe " + cFile ), XFOCUS( oCbx[1] ) )
            // Editor de .TXT do Windows

   // em ASCII direto na impressora
   //          ACTION( WinExec( "Notepad.exe /a/p" + cFile ), XFOCUS( oCbx[1] ) )
   // Para Imprimir direto na USB usando o Bloco de Notas como impressora
   //          ACTION( WinExec( "Notepad.exe /p" + cFile ), XFOCUS( oCbx[1] ) )
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

Como abrir/Executar um arquivo de texto?

Mensagempor Kapiaba » 30 Mar 2017 10:31

Para abrir o WordPad.exe do Windows:


   MENUITEM "&Writing..."    ACTION WinExec( "Write" ) ;
      MESSAGE "Calling Windows Write"
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

Como abrir/Executar um arquivo de texto?

Mensagempor JoséQuintas » 30 Mar 2017 10:43

Olá amigos,procurei em toda parte mas so achei como ler arquivo de texte
eu quero que abra um arquivo do notepad++
tentei o Run('Start Caminho' ) mas so funciona se o arquivo tiver no C:


Ué.... é o de sempre, nada mudou.
Quer abrir algum arquivo em algum programa?

cNomeExe := [c:\"arquivos de programa"\notepad++\notepad++.exe]
cNomeArquivo := [x:\suapasta\nomearquivo.prg]

run ( "start " + cNomeExe + " " + cNomeArquivo )


Se tiver algum programa associado ao arquivo, mais fácil, basta o nome do arquivo.

RUN ( "start nomearquivo.prg" )


Mas fivewin... dá uma procurada em ShellExecute() ou algo assim, fica mais profissional.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Como abrir/Executar um arquivo de texto?

Mensagempor Kapiaba » 30 Mar 2017 11:27

Conforme sugerido pelo mister Quintas:

ShellExecute(GetActiveWindow(),"open",'"'+cPdfMachine+'"', 0 )


ou,

MsgRun( "TODOS OS BANCOS FORAM INDEXADOS...", ;
               "Por Favor, Espere! Vou Desligar.  ", ;
                    { || WinExec( CHAMA_VENDAS() ), 3 } )


ou,

***************************
Function MYRUN( cComando )

   ***************************
   Local oShell, RET, lOk:=.T.

   TRY
      #IFDEF __XHARBOUR__
         oShell := CreateObject( "WScript.Shell" )
      #ELSE
         oShell := Win_OleCreateObject( "WScript.Shell" )
      #ENDIF

   CATCH

      TRY
         #IFDEF __XHARBOUR__
            oShell := CreateObject( "WScript.Shell" )
         #ELSE
            oShell := Win_OleCreateObject( "WScript.Shell" )
         #ENDIF

      CATCH

         lOk:=.F.

        END
   END

   IF lOk

      TRY

          //.F. = Nao espera a aplicacao fechar, .T. espera.
          oShell:Run( "%comspec% /c " + cComando, 0, .T. )

      CATCH

          lOk:=.F.

      END

      oShell := NIL

   ENDIF

   //--   RET := oShell:Run( "%comspec% /c " + cComando, 0)  //, .T. )

RETURN lOk
// Essa função não é de minha autoria, mas foi disponibilizada no Fórum do Toledo, agradecimentos ao autor...
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

Como abrir/Executar um arquivo de texto?

Mensagempor Daiane » 30 Mar 2017 11:51

dessa forma funcionou

cNomeExe := "notepad.exe"
cNomeArquivo := CurDrive()+":\Empreend\RelEmail.TXT"
un ( "start " + cNomeExe + " " + cNomeArquivo )


e se eu quiser maximizado?
XHb 1.2.1 + FW 12.05 + Pelles C IDE
"Eu adoraria mudar o mundo, mas não me deram o código-fonte."
Avatar de usuário

Daiane
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 122
Data de registro: 28 Out 2014 15:19
Cidade/Estado: Feira de Santana - BA
Curtiu: 27 vezes
Mens.Curtidas: 13 vezes

Como abrir/Executar um arquivo de texto?

Mensagempor JoséQuintas » 30 Mar 2017 12:38

Pergunte ao Windows.... rs

start /?


Inicia uma janela separada para executar um programa ou comando especificado.

START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/NODE <nó de NUMA>] [/AFFINITY < máscara_afinidade_hexadecimal >] [/WAIT] [/B]
[comando/programa] [parâmetros]

"title" Título a ser exibido na barra de títulos da janela.
path Diretório de início.
B Inicia um aplicativo sem criar nova janela. O aplicativo tem
o tratamento de ^C ignorado. A menos que o aplicativo ative o
processamento de ^C, o comando ^Break é a única forma de
interromper o aplicativo.
I O novo ambiente será o ambiente original transferido para o
cmd.exe e não é o ambiente atual.
MIN Inicia a janela minimizada.
MAX Inicia a janela maximizada.
SEPARATE Inicia um programa do Windows de 16 bits em um espaço de memória separado.
SHARED Inicia um programa do Windows de 16 bits em um espaço de memória compartilhado.
LOW Inicia o aplicativo na classe de prioridade IDLE.
NORMAL Inicia o aplicativo na classe de prioridade NORMAL.
HIGH Inicia o aplicativo na classe de prioridade HIGH.
REALTIME Inicia o aplicativo na classe de prioridade REALTIME.
Inicia o aplicativo na classe de prioridade ABOVENORMAL.
BELOWNORMAL Inicia o aplicativo na classe de prioridade BELOWNORMAL.
NODE Especifica o nó da Arquitetura de Memória Não Uniforme (NUMA)
com um inteiro decimal.
AFFINITY Especifica a máscara de afinidade do processador com um número hexadecimal.
O processo está restrito a execução nesses processadores.

A máscara de afinidade é interpretada de forma diferente quando /AFFINITY e
/NODE são combinados. Especifique a máscara de afinidade se a máscara do processador do nó NUMA for deslocada
para a direita para começar no bit zero.
O processo é restrito a execução nesses processadores em
comum entre a máscara de afinidade especificada e o nó NUMA.
Se não houver processadores em comum, o processo estará restrito a
execução no nó NUMA especificado.
WAIT Inicia o aplicativo e espera que ele finalize o
comando/programa
Se for um comando cmd interno ou um arquivo em lotes, o
processador do comando será executado com a opção /K para cmd.exe.
Isso significa que a janela permanecerá depois que o
comando for executado.

Se não for um comando cmd interno nem um arquivo em lotes,
ele será um programa executado como um aplicativo em janela
ou um aplicativo em console.

parameters São os parâmetros transferidos para o comando/programa.

OBSERVAÇÃO: As opções SEPARATE e SHARED não são suportadas em plataformas de 64 bits.

A especificação /NODE permite que sejam criados processos de uma forma que
aproveite localidade de memória em sistemas NUMA. Por exemplo, dois processos
que se comuniquem pesadamente um com o outro por meio de memória compartilhada podem ser criados para compartilhar o mesmo nó NUMA
preferencial a fim de minimizar latências de memória. Eles alocam
memória do mesmo nó NUMA, quando for possível, e ficam liberados para executar em processadores fora do nó
especificado.

start /NODE 1 application1.exe
start /NODE 1 application2.exe

Esses dois processos podem ser ainda mais restringidos para executar em
processadores específicos dentro do mesmo nó NUMA. No exemplo a seguir, application1 é executado
nos dois processadores de ordem inferior do nó, enquanto application2 é executado nos próximos dois
processadores do nó. Esse exemplo presume que o nó especificado tem no mínimo
quatro processadores lógicos. Observe que o número do nó pode ser alterado para qualquer número de nó
válido para aquele computador sem precisar alterar a máscara de afinidade.

start /NODE 1 /AFFINITY 0x3 application1.exe
start /NODE 1 /AFFINITY 0xc application2.exe

Se as extensões de comando estiverem ativadas, a invocação de comando externa
através da linha de comando ou do comando START será alterada como a seguir:

Arquivos não executáveis podem ser chamados através de sua associação
de arquivos apenas ao digitar o nome do arquivo como um comando.
(e.g. WORD.DOC iniciaria o aplicativo associado com a extensão de arquivo
.DOC). Consulte os comandos ASSOC e FTYPE para obter informações sobre
como criar essas associações a partir de um script de comando.

Ao executar um aplicativo que seja um aplicativo GUI de 32 bits, o CMD.EXE
não espera o aplicativo terminar para voltar ao prompt de comando.
Esse novo comportamento NÃO ocorre se estiver sendo executado
a partir de um script de comando.

Ao executar uma linha de comando cujo primeiro token seja a cadeia de
caracteres "CMD " sem uma extensão ou qualificador de caminhos, o "CMD"
é substituído pelo valor da variável COMSPEC. Isso evita selecionar o *
CMD.EXE na pasta atual.

Ao executar uma linha de comando cujo primeiro token NÃO contenha uma
extensão, o CMD.EXE usará o valor da variável de ambiente PATHEXT
para determinar quais extensões serão procuradas e em que ordem.
O valor padrão da variável PATHEXT é:

.COM;.EXE;.BAT;.CMD

Observe que a sintaxe é a mesma da variável PATH, com
ponto-e-vírgula separando os diferentes elementos.

Ao procurar por um executável, se não houver correspondência em nenhuma
extensão, ele verifica se o nome corresponde a um nome de pasta.
Se corresponder, o comando START inicia o Explorer nesse caminho.
Se for feito a partir da linha de comando, será o equivalente a fazer CD /D
para esse caminho.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Como abrir/Executar um arquivo de texto?

Mensagempor rochinha » 04 Abr 2017 01:39

Amiguinhos,

O comando START só falha quando os tipos registrados não tem o aplicativo padrão para abertura.

Se for apresentar o arquivo para modificações abra-se o editor que quizer mas se quiser usar uma classe interna pode ser que a tRichEdit sirva. O testrich.prg da pasta samples pode ajudar.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Como abrir/Executar um arquivo de texto?

Mensagempor Poka » 04 Jun 2020 17:18

Boa tarde

run ( "start wordpad.exe " + xarq )

xarq é o path do arquivo

abaixo deste comando tenho uma mensagem .
esta mensagem aparece (é executada) antes de aparecer o arquivo +no wordpad
tem algum parâmetro para desabilitar?

qualquer comando abaixo aprece primeiro.

Grato

Poka
Avatar de usuário

Poka
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 509
Data de registro: 25 Out 2004 21:26
Cidade/Estado: Leme/SP
Curtiu: 0 vez
Mens.Curtidas: 23 vezes

Como abrir/Executar um arquivo de texto?

Mensagempor JoséQuintas » 04 Jun 2020 23:17

Geralmente quando é executado um programa Windows, ele é aberto em outra janela, e não espera terminar.
Seria esse o problema?
Há alternativas, mas não sei se compensa complicar.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Como abrir/Executar um arquivo de texto?

Mensagempor Kapiaba » 08 Jun 2020 09:54

Poka, Se usas FiveWin:

   WinExec( "start mailto: " + cMail, 0 )

   WinExec( "start urlto:" + cURL, 0 )

   WinExec( "start wordpad.exe " + xarq, 0 )


Abs.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

Como abrir/Executar um arquivo de texto?

Mensagempor Poka » 11 Jun 2020 17:14

Boa tarde

Quintas, obrigado por responder.

Estranho né. Exemplo na linha abaixo da chamada do WordPad pergunto se quer gravar ou não o texto na minha tabela do sistema.
Pergunta primeiro, depois chama o WordPad.

Kapiaba, obrigado por responder.

Uso Harbour + minigui extend, caí aqui por causa do assunto mesmo.

Solução,

Tô usando o RichEdit , deu certo o que eu queria.

Obrigado

Poka
Avatar de usuário

Poka
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 509
Data de registro: 25 Out 2004 21:26
Cidade/Estado: Leme/SP
Curtiu: 0 vez
Mens.Curtidas: 23 vezes

Como abrir/Executar um arquivo de texto?

Mensagempor JoséQuintas » 12 Jun 2020 10:26

Poka escreveu:Estranho né. Exemplo na linha abaixo da chamada do WordPad pergunto se quer gravar ou não o texto na minha tabela do sistema.
Pergunta primeiro, depois chama o WordPad.


É NORMAL.
Programas Windows são independentes, rodam em janela própria.
Não importa se terminaram de carregar, já fica liberado.

Por outro lado, se simplesmente travar o aplicativo esperando resposta, pode acabar gerando erro, justamente por ele estar travado.

Por isso acaba precisando tratamento especial.
O Harbour tem funções nativas pra essas situações, lembro disso, mas como não uso, não sei dizer quais são.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Como abrir/Executar um arquivo de texto?

Mensagempor Poka » 13 Jun 2020 11:58

Quintas escreveu
Por isso acaba precisando tratamento especial.
O Harbour tem funções nativas pra essas situações, lembro disso, mas como não uso, não sei dizer quais são.


É porque senão, não tem como usar no sistema, mas deu certo com com o RichEdit. Ficou até melhor pra aquilo
que eu queria.

Obrigado

Poka
Avatar de usuário

Poka
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 509
Data de registro: 25 Out 2004 21:26
Cidade/Estado: Leme/SP
Curtiu: 0 vez
Mens.Curtidas: 23 vezes




Retornar para FiveWin

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 8 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro