logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

C++, pascalowa funkcja rewrite, odczytanie ilości rekordów.

Karollo_82 04 Sty 2006 12:05 1136 5
REKLAMA
  • #1 2145121
    Karollo_82
    Poziom 15  
    Posty: 181
    Pomógł: 4
    Ocena: 7
    Nie mogę sobie poradzić z kilkoma rzeczami, otóż nie wiem jak w c++ wygląda funkcja pascalowa Rewrite (chodzi mi o wykasowanie danych z pliku, wyczyszczenie pliku). Mam też problemy z odczytaniem ilości rekordów w pliku. Funkcja sizeof() zwraca mi zawsze wartość 2.

    W załączniku przesyłam kod tego bardzo prostego programiku. Proszę o pomoc. Dzięki :)
    Załączniki:
    • GIELDA.CPP (2.61 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #2 2145138
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 240
    wielkosc=sizeof(plik);   //blednie odczytuje wielkosc pliku!!! zawsze jest 2
    I prawidłowo bo sizeof zwraca rozmiar zmiennej a nie rozmiar pliku.
  • REKLAMA
  • #3 2145151
    Karollo_82
    Poziom 15  
    Posty: 181
    Pomógł: 4
    Ocena: 7
    W takim razie jaka funkcja zwraca wielkość pliku? W sumie tu chodzi o ilość rekordów zapisanych w pliku.
  • REKLAMA
  • #4 2145902
    monsinior
    Poziom 17  
    Posty: 162
    Pomógł: 18
    Ocena: 7
    Czytaj plik aż natrafisz na znacznik EOF, wtedy wiesz że plik się skończył, jest funkcja feof(), która sprawdza czy plik znajduje się w pozycji końcowej!!!
  • REKLAMA
  • #5 2148743
    Bielsky
    Poziom 21  
    Posty: 333
    Pomógł: 30
    Ocena: 19
    W bibliotece stat.h funkcja zwracająca wielkość pliku.
    Ilość rekordów będziesz chyba musiał policzyć przy pobieraniu ich z pliku.
    
    #include <stdlib.h>
    #include <iostream>
    #include <sys/stat.h> 
    using namespace std;
    int main(int argc, char *argv[])
    {
    	struct _stat plik;
    	if ( _stat("main.cpp", &plik) != 0 ){
    	    cout << "Brak pliku: \nmain.cpp";
    	}
    	int fsize=plik.st_size;
    	cout << fsize << endl;
    	system("pause");
    }
    
  • #6 2149976
    Karollo_82
    Poziom 15  
    Posty: 181
    Pomógł: 4
    Ocena: 7
    Dzięki za pomoc, problem został rozwiązany przez zastosowanie funkcji feof(). Temat zamknięty.
REKLAMA