[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Dúvida Shell Script



Wesley, Felipe e amigos da lista,

Obrigado pela atenção dispensada e pelo código com as soluções.
O problema é que não sei se vou poder usar C ou PHP por normas do projetos
entende?
Se tiverem a solução em script shell / bash fico muito grato.

Obrigado.
Rubens Saraiva

----- Original Message -----
From: Wesley Alves de Oliveira/MPGO <wesley.oliveira@mp.go.gov.br>
To: <rubens.saraiva@mult-e.com.br>;
<debian-user-portuguese@lists.debian.org>
Sent: Wednesday, April 30, 2003 5:45 PM
Subject: Re: Dúvida Shell Script


Existe uma variável externa que você deve setá-la para depois fazer isso,
mas em C fica mais fácil tipo:

int main(int argc, char *argv[])
{
        FILE *arquivo;
        char c, buffer[TAMANHO]; /* Segunda variavel opcional, pois se
quizer que apenas mostre na tela não é         necessário
                                        Estou implementando a função para
que você não precise de buffer  */

        if((arquivo = fopen("path do arquivo","r"))==NULL){
                puts("Erro ao ler arquivo ou você não tem permissão de
leitura...");
                return(1);
        }

        while((c=getc(arquivo))!=EOF){
                if(c == 'g'){  /* Observando seu texto aí em baixo,
testaremos primeiro a letra g e depois sempre a sua        subsequente */
                        c = getc(arquivo);
                        if(c ==
){ 
                                /* Agora testamos a subsequente se for, 
pronto imprima na tela o conteúdo entre elas */
                                while((c = getc(arquivo)) != '<') { 
printf("%c",c); }
                        }
                }
        }
        fclose(arquivo);
        return(0);
}

Se você não tiver dentro das tags do html uma coicidência da letra g e 
posteriormente a o > ele vai imprimir corretamente, quer dizer ainda não 
testei acho que vai funcionar.

Se quizer armazenar no lugar de printf("%c",c) coloca buffer[i] = c; 
declare uma variável static int i; no inicio do arquivo, e de
ntro do corpo
do laço while de impressão coloque o seguinte:
        while((c = getc(arquivo))!='<'){ i = 0; buffer[i] = c; i++; }

Se o código não lhe interessar ou você preferir em script, hoje a noite eu
olho lá em casa e lhe mostro o código em Script Bash como seria, mas só
vou lhe postar amanhã pois a internet é mais barata.

Pessoal,

Como fazer para pegar dados de um arquivo especificando caracteres que
vem antes e depois??
Exemplo:

Tenho um arquivo texto com:
<tag>1</tag>
<tag>ab</tag>
<tag>ZZ</tag>

Preciso retornar:
1abZZ

Ou seja, preciso todos os dados de "tag".

Obrigado.
Rubens



--
To UNSUBSCRIBE, email to debian-user-portuguese-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact
listmaster@lists.debian.org





--
To UNSUBSCRIBE, email to debian-user-portuguese-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact
listmaster@lists.debian.org





Reply to: