Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

operacja na plikach - sprawdzanie zawartosci

Ostatnio zmodyfikowano 2013-01-23 17:05
Autor Wiadomość
ogipierogi
Temat założony przez niniejszego użytkownika
operacja na plikach - sprawdzanie zawartosci
» 2013-01-22 23:49:11
Witam, do mojego projektu potrzebuje dodać obsługę błędów. Robiąc to wg schematów ze stron
http://komputery.katalogi.pl/%5Bc%5D_program_ma_wczytywac_wyrazy_z_pliku_wejsciowego_...-t120021.html
http://home.agh.edu.pl/~danpoc/dydaktyka/Jezyk%20C%20-%20cz.3.pdf
ciągle coś nie działa...
1. pierwsza rzecza jaka chciałbym aby program sprawdzał, to czy w pliku tekstowym zadanym przez użytkownika znajdują się litery lub znaki specjalne
2. Czy plik jest pusty
Z gory dziekuje za pomoc
P-74746
ogipierogi
Temat założony przez niniejszego użytkownika
» 2013-01-22 23:59:14
dodam ze chodzi o język C
P-74751
DejaVu
» 2013-01-23 00:49:35
Tak na pierwszy rzut oka to materiały, które podałeś całkiem ładnie są przygotowane i opisują podstawy obsługi plików w C. Sprawdzaj każdy znak z pliku czy jest literą lub znakiem specjalnym.
P-74759
ogipierogi
Temat założony przez niniejszego użytkownika
» 2013-01-23 01:07:15
tylko jak?
dziwi mnie to ze jak sprawdzam czy
if((plik_czyt=fopen(nazwa,"r"))==NULL)
 plus printf do bledu, nie działa.
P-74763
Admixior
» 2013-01-23 01:18:41
Opisz szerzej co nie działa. Czy to otwieranie pliku czy też printf. I podaj trochę więcej kodu.
P-74765
ogipierogi
Temat założony przez niniejszego użytkownika
» 2013-01-23 01:24:20
C/C++
int main( int argc, char * argv[] )
{
    char nazwa[ 80 ], nazwaz[ 90 ];
    char znak;
    int wiersz = 0;
    int i, j, liczba;
    FILE * plik_czyt;
    FILE * plik_zapis;
    struct array * tab = InitArray();
   
    printf( "Podaj nazwe pliku: " );
    scanf( "%s", nazwa );
    printf( "Czytam liczby z pliku: %s\n", nazwa );
   
    i = 0;
   
    if(( plik_czyt = fopen( nazwa, "r" ) ) != NULL )
    {
        while( fscanf( plik_czyt, "%d", & liczba ) != EOF )
        {
            printf( "Odczytano: %d\n", liczba );
            AddElement( tab, liczba );
            i++;
           
            znak = fgetc( plik_czyt );
            if( znak == '\n' )
                 wiersz++;
           
        }
       
        printf( "Plik zawiera %d wierszy\n", wiersz );
       
        fclose( plik_czyt );
        printf( "Zakonczono odczyt z pliku: %s\n", nazwa );
       
        strcpy( nazwaz, "sort" );
        strcat( nazwaz, nazwa );
        printf( "Zapisuje liczby do pliku: %s\n", nazwaz );
        if(( plik_zapis = fopen( nazwaz, "w" ) ) != NULL )
        {
            for( j = 0; j < i; j++ )
            {
                QuickSort( tab, 0, tab->added - 1 );
                printf( "Zapisuje: %d\n", *( tab->elements + j ) );
                fprintf( plik_zapis, "%d\n", *( tab->elements + j ) );
            }
            fclose( plik_zapis );
            printf( "Zakonczono zapis do pliku: %s\n", nazwaz );
        }
    }
    else
         printf( "Blad otwarcia pliku %s!\n", nazwa );
   
    free( tab->elements );
    free( tab );
    system( "PAUSE" );
    return 0;
}

oto kod główny programu bez implementacji funkcji i struktur

Chciałbym aby miał on jeszce zabezpieczenie przed wczytaniem pustego pliku, i pliku który bedzie miał litere.
poniżej przedstawiam mozliwosc rozwiazania pustosci pliku, jednak w zaleznosci w ktorym miejcu wklepie to w kodzie, albo
nie działa w ogole, albo bez wzgledu na to czy plik wczytywany jest pusty czy nie, wyswietla komunikat o tym bledzie i koncyz prace.
C/C++
co robie ź le ?
plik_czyt = fopen( nazwa, "r" );
if( plik_czyt == NULL ) {
    printf( "Blad! plik pusty!" );
    getchar();
    return 0; }
P-74767
killjoy
» 2013-01-23 01:41:46
Prosze cię wrzuć kawałki kodu w znaczniki
[cpp][/cpp]
 to może coś poradze.
P-74770
ogipierogi
Temat założony przez niniejszego użytkownika
» 2013-01-23 01:51:47
już
P-74772
« 1 » 2 3
  Strona 1 z 3 Następna strona