SOCORRO NO MS-DOS
[txt-color=#3333ff]Olá Amigos! Agradeço aos amigos que responderam meu último tópico...
Meu problema é o seguinte:
Eu utilizo um programa escrito em c que baseado em MS-DOS, como todos nós sabemos o MS-DOS não aceita espaços entre nomes de arquivos ou pastas. Eu utilizo uma commondialog para abrir arquivos e passar o nome e o local do arquivo para o programa em MS-DOS... Mas por exemplo quando eu vou C:\Meus documentos ou tento ler um arquivo assim meu nome é.txt da erro no programa em MS-DOS devido ao espaço entre Meu e documentos ou Meu e nome é. Como eu faria para resolver este problema e o problema com acento nas letras...
Desde ja agradeço![/txt-color]
Meu problema é o seguinte:
Eu utilizo um programa escrito em c que baseado em MS-DOS, como todos nós sabemos o MS-DOS não aceita espaços entre nomes de arquivos ou pastas. Eu utilizo uma commondialog para abrir arquivos e passar o nome e o local do arquivo para o programa em MS-DOS... Mas por exemplo quando eu vou C:\Meus documentos ou tento ler um arquivo assim meu nome é.txt da erro no programa em MS-DOS devido ao espaço entre Meu e documentos ou Meu e nome é. Como eu faria para resolver este problema e o problema com acento nas letras...
Desde ja agradeço![/txt-color]
Sendo DOS fica difÃÂÂcel, mas... tenta usar:
MEUS DOCUMENTOS => MEUS_DOC ou M_DOC
MEUS DOCUMENTOS => MEUS_DOC ou M_DOC
nomes "convertidos em ms-dos" tem 8 caracters...
remove os espacoes e se tiver mais de 8 caracteres, vira ~1 (ou outro numero se mais de uma opcao tiver o mesmo inicio)
agora - para nao ter erro - joga o seu programa em C na raiz, cria a rotina em vb que renomeia o arquivo que ele le com um nome simples, chama o programa em C, pega o resultado e renomeia o arquivo de volta para o nome que deveria (mto mais simples do que ficar brigando com velharia)
remove os espacoes e se tiver mais de 8 caracteres, vira ~1 (ou outro numero se mais de uma opcao tiver o mesmo inicio)
agora - para nao ter erro - joga o seu programa em C na raiz, cria a rotina em vb que renomeia o arquivo que ele le com um nome simples, chama o programa em C, pega o resultado e renomeia o arquivo de volta para o nome que deveria (mto mais simples do que ficar brigando com velharia)
Me parece que o seu problema é o seguinte:
Os argumentos passados via linha de comando para qualquer aplicação escrita na linguagem que for são delimitadores pelo sistema operacional pelos caracteres branco, ou seja, se um programa for chamado assim: aplicacaoA C:\Arquivos de programa\etc o programa aplicacaoA irá receber três argumentos C:\Arquivos, de e programa\etc. Para que os argumentos que possuem caracteres brancos sejam tratados pelo sistema operacional como um único argumento passe o argumento delimitado por aspas.
[b]aplicacaoA "C:\Arquivos de programa\etc"
Se você estiver usando um SO anterior ao Win2x (um Win9X por exemplo), pesquise as APIS que retornam o "nome curto" do arquivo.
Os argumentos passados via linha de comando para qualquer aplicação escrita na linguagem que for são delimitadores pelo sistema operacional pelos caracteres branco, ou seja, se um programa for chamado assim: aplicacaoA C:\Arquivos de programa\etc o programa aplicacaoA irá receber três argumentos C:\Arquivos, de e programa\etc. Para que os argumentos que possuem caracteres brancos sejam tratados pelo sistema operacional como um único argumento passe o argumento delimitado por aspas.
[b]aplicacaoA "C:\Arquivos de programa\etc"
Se você estiver usando um SO anterior ao Win2x (um Win9X por exemplo), pesquise as APIS que retornam o "nome curto" do arquivo.
Tópico encerrado , respostas não são mais permitidas