Billy escreveu:Pode-se gerar sem problemas diretórios começando por números
Como eu disse: não tinha certeza disto. E agora posso afirmar: não tem problemas de abrir diretórios começando com "1, 2, 3..." (caracteres numéricos).
E com respeito a abertura de dbf começando com caracteres numéricos, acabo de descobrir que é possível só que a sua abertura terá que ser feita juntamente com um novo "aliás" e necessariamente NÃO deverá começar com caracter numérico (mesmo sendo transformado em caracter). Billy, você disse isso porque você ja testou ? Ou será que eu estou enganado ?. Se eu estiver me diga onde, pois eu fiz testes e o que estou dizendo é assim aqui para mim.
Angelo escreveu:vou expor exatamente o que eu quero, e vc me diz se é possivel.
Você disse que digitaria o número da matricula, só não entendo "o quê" deve ser copiado ? A matricula ? Em formato de quê ? Seria um dbf ?
o sistema irá verificar se existe o arquivo em 2 diretorios distintos
Perfeitamente possível. Teria que ver se o arquivo existe nos dois diretórios ou pode se conformar em ser apenas um deles ?
caso exista
copy (nº mat)...
Aqui você não me disse o conteúdo dessa variável vmat.
E você precisar copiar de onde para onde, dê exemplos.
Agora leia o seu texto, eu mudei a cor para referenciar-me e me responda as minhas questões abaixo:
copy nº
mat. g:\backup\mat-pdf\
15\nº mat, e o quinze é a referencia decimal da mat, ou seja, o diretorio de milhar da mesma.
Você menciona "mat.", isto seria um arquivo com extensão do número da matrícula ? Se for, é alí que está o seu erro. Pois a extensão de arquivos dentro do sistema Clipper (em forma nativa), não lê a extensão com mais de três dígitos. Ao menos que você utilize uma biblioteca que leia os nomes de arquivo de forma "longa", pois o Clipper nativamente lê em forma curta: 8x3 (oito caracteres o nome do arquivo e até três caracteres como extensão do arquivo).
Esse "15" que deveria guardar os arquivos conforme a dezena de milhar conforme o número da matricula. Bem só que para que funcione, eu esquecí de adicionar no meu código para que "crie" o diretório "15". Veja outra vez o meu código da minha mensagem anterior, veja que adicionei o DIRMAKE que serve para criar pastas.
Outra coisa muito importante, você está considerando dezena de milhar para armazenar os arquivos, isto é, de 1000 em 1000, certo ? pois bem, pelo que eu sei existe um limite do próprio sistema operacional (não lembro quanto), faça um teste você mesmo, crie 1000 arquivo num subdiretório e veja se não dá pau. Eu aconselho, você guardar de 100 em 100, então pegue mais um dígito:
nº mat. 5890
converto para strzero,5
fica assim 05890
onde o diretorio de destino será os dois digitos iniciais, ou seja, diretorio 05
Pegue 3 dígitos, neste exemplo seu: "058", entendeu ?
feito isso
delete nº mat. f:\mat-word\nº mat.
delete nº mat. f:\mat-pdf\nº mat.
Depois é questão de deletar o arquivo que está no diretório corrente ? Para quê seria copiar o arquivo ? Pois se esse arquivo for um dbf, poderia ser aberto no diretório de armazenagem, você não acha ?
acho que se eu conseguir fazer isso, vou otimizar meu trabalho em 60%
Com certeza que dividindo o bd conforme matricula, você ganha performance, pois os dados ficam restritos conforme a matrícula. Parabéns pela sua visão. Eu ja venho fazendo isto há dezenas de anos e meu sistema é muito rápido por causa dessa estrutura. Só que você não me disse ainda qual é o conteúdo do vmat, apesar de eu ter te perguntado na minha mensagem anterior. E se quiser que te ajude de forma mais abrangente, observe e responda todas as minhas perguntas aqui nesta mensagem.
interessante usar a dica que o colega PABLO passou, utilizando as funções da CT
Pois é Ana, essa idéia é muito boa para quem quer ganhar performance e ordenar separadamente os dados, mas utilizo funções da CT.LIB