Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    100

    [C] estrarre le componenti testuali all interno di un file non di testo

    ciao ragazzi vorrei aprire un file non di testo(come un eseguibile)ed estrarre le componenti testuali al
    suo interno, con modalità analoghe a quelle del comando UNIX strings (si veda la pagina di manuale relativa) e stampare una per riga le sue parole(ovvero le sue componente testuali).
    ./main
    stringa1
    stringa2
    stringa3
    stringa4

    codice:
    #include<stdio.h>
    #include<string.h>
    #include<malloc.h>
    #include<stdlib.h>
    #include<errno.h>
    #include<dirent.h>
    #include<sys/types.h>
    #include<sys/stat.h>
    #include<ctype.h>
    
    int main(){
    FILE *F;
    F=fopen("stat","r");
    int i;
    char a;
    char *buf1,*buf2;
    buf1=malloc(30 * sizeof (char));
    a=fgetc(F);
    while(a!=EOF)
    {
    if(isspace(a)==0)// non è spazio quindi fa parte della mia sottostringa
    {
    if(isgraph(a)!=0)
    printf("%c",a);
    }else
    printf("\n");//finita sottostringa
    a=fgetc(F);
    }
    }
    purtroppo non mi da lo stesso output della funzione strings()
    help me
    df

  2. #2
    strings stampa solo le sequenze di caratteri testuali lunghe almeno 4 caratteri (valore modificabile tramite opzioni); dovresti implementare questo controllo nel tuo codice.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    100
    se io ho un file con scritto
    ciao sono il duca
    strings stampa anche sottostringhe lunghe d meno come "il"
    mi potreste dare una mano a correggere il mio codice per fare un programma del tipo come strings che pero stampa una sequenze di caratteri testuali per riga
    df

  4. #4
    Originariamente inviato da esoni
    se io ho un file con scritto
    ciao sono il duca
    strings stampa anche sottostringhe lunghe d meno come "il"
    Anche gli spazi vengono considerati come caratteri testuali; è per questo che viene visualizzato tutto.
    mi potreste dare una mano a correggere il mio codice per fare un programma del tipo come strings che pero stampa una sequenze di caratteri testuali per riga
    Uno spunto ti è stato dato... devi stampare solo le occorrenze in cui si hanno quattro o più caratteri stampabili di fila; come implementeresti questo comportamento?
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    100
    il problema è che io devo implementare del codice "simile" a strings() ma non =...
    io devo stampare le sottostringhe una per riga
    ovvero le sottostringhe di caratteri visualizzabili..per esempio supponiamo che un file non di testo come un eseguibile contenga per assurdo solo le seguenti parole formate da caratteri visualizzabili
    ciao sono il duca
    output deve essere
    ciao
    sono
    il
    duca

    la mia idea l ho gia postata con il codice
    df

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.