X
ďťż

Ładny brzuch

sry mod
otórz mam kłopotów kilka, mam devcpp(devC++ v4.9.9.2);
i np jak chce cos zapisac czy odczytac to korzystam z komend ze stronki
pliki binarne
ale cos nie zabzrdzo mi wychodzi :(
czy znalazł by sie taka osoba co by przedstawiła komedny do operacji tego typu i opisał z parametrami
zaurzarzyłem czytajac ze korzysam ze starych komend i to ze jak otwieram plik w trybie do dodania,zapisze 4 bajty liczba int, a jak ja odzczytuje 4 bajty w stecz to jest 0,wiec musialem otwierac w trybie rb+,przejscz na koniec pliku fseek,zapisac nowa wartosc fwrite i ja odczytac f read i wtedy dobrze było????ale tylko z trybem rb+
prosze pomuzcie jak umiecie
chce miec kilka plików binarnych w których bedze odczytaywł struktury z nich
czy dla kazdego innego pliku tzn z inna nazwa oczywiscie musze skopiowac kod kilkakrotnie?? czy jest szybsza metoda np. w miejsce w komendzie podstawic za plik zmienna?? która sie bedzie zmieniała i odbnosiła do wybranego wskaznika w pliku
?? chyba nie bardzo bo te struktury sa różne
nie wiem pomuzcie jak możecie komedny jak sie przemieszczac po pliku tryb otwarcia i tak dalej
plzzz :rolleyes:



Jak coś ci nie działa to wstaw kod zródłowy. Posta mogłeś napisać bardziej staranniej, chyba że to jest dla ciebie starannie! - to by wyjaśniało dlaczego kod nie działa :)
Na forum było dużo postów o plikach binarnych, można by tak wyszukać? Może tu ? albo Tu

prosze moje kody


#include <cstdlib>
#include <iostream>
#include "strbazy.cpp"
using namespace std;

int main(){cout<<"Witaj w menadzerze zarzadznia baza\n";start:
cout<<"wybierz opcje\n1-sprawdz wpisy\n2-modyfikuj wpis\n3-dodaj nowy wpis\n4-resetuj baze\n";
    int w;
    cin>>w;
    switch (w){
          case 1:
                cout<<"istnieje "<<tbudnkwpis<<" wpisuw w bazie budynki\ni ma rozmiar "<<rbudnk;system("Pause");
                break;
          case 2:
                break;
          case 3:b=0;
                budnk=fopen("budnk.dat","rb+"); fseek(budnk, 0, SEEK_END);
                cin>>a;cout<<a<<endl;                                         
                    fwrite(&a,sizeof(int),1,budnk);fseek(budnk,-4, SEEK_CUR);
                    fread(&b,sizeof(int),1,budnk);fseek(budnk, 0, SEEK_END);fseek(budnk, 0, SEEK_END);rbudnk=ftell(budnk);
                    cout<<b<<endl<<rbudnk;;
                    fclose(budnk);system("Pause");
                break;
          case 4:
                budnk=fopen("budnk.dat","wb");                                 
                    fseek(budnk, 0, SEEK_SET);r=0;
                    fwrite(&r,sizeof(int),1,budnk);
                    fseek(budnk, 8, SEEK_SET);
                    fclose(budnk);
                printf ("Size of myfile.txt: %ld bytes.\n",B);system("Pause");
                badn=fopen("badn.dat","wb");
                fclose(badn);
                break;
          default:
                  goto start;
                  break;
    system("Pause");
    return 0;
}}


i drugi


#include<iostream>
int tbudnkwpis;int r;long size;int a,b,rbudnk;
using namespace std;
void checkwpisbudnk();
void czyscbudnk();
FILE *budnk;
FILE *badn;
typedef struct {
bool exist; 
char nazbu[];   
bool dodsur;
char jakie[9];
int podstwy;
bool produce;
bool zwproduk;
char czego[16];}bud;
typedef struct {
bool exist; 
char nazbd[];   
bool wmgm;
int ilem;
bool wmgk;
int ilek;
bool wmgd;
int iled;}bad;
void checkwpisbudnk(){
                  budnk=fopen("budnk.dat","rb");             
                  fseek(budnk, 0, SEEK_SET);
                  fread(&tbudnkwpis,sizeof(int),1,budnk);fseek(budnk, 0, SEEK_END);fclose(budnk);
                  }
void czyscbudnk(){}


jedynie 3 opcja dzial poprawnie
nie skonczyłem reszty jescze
np jak mam przeniesc kursor sprawic by struktura bazy była zapisana linijke nizej tak kazda z osobna

widac ze muj kod to zlepek ruznych funkcji i tak dalej, ale zmienen sa te same

dobra aajk stworzyc wlasny typ pliku nagłowek i tak dalej


dobra  aajk stworzyc wlasny typ pliku nagłowek i tak dalej
http://programex.ris...uryd_formatyp#3



hmm nowe przydatne funkcje :rolleyes:
ale jak zastosowalem create file do dir to wywala mi bład?? jaki powinien miec argument?? bo nie wiem??
chce zeby pliki nie były tworzone gdzies tam ale w folderze data

CreateDirectory("C:\\Data");
i wywala mi kompilator do winbase.h

WINBASEAPI BOOL WINAPI CreateDirectoryA(LPCSTR,LPSECURITY_ATTRIBUTES);

:(


hmm nowe przydatne funkcje  :rolleyes:
ale jak zastosowalem create file do dir to wywala mi bład?? jaki powinien miec argument?? bo nie wiem??
chce zeby pliki nie były tworzone gdzies tam ale w folderze data

i wywala mi kompilator do winbase.h
:(

dzieki juz sie biore za lekture
kolejna :D

znalazlem jeszcze jedno aole po angielsku
fstream eng
Użytkownik Mrnice007 edytował ten post 27 sierpień 2005, 15:07
niestety pojawił sie inny problem

#include<iostream>
#include <cstdlib>
#include<fstream>
int a,b;
using namespace std;
string nazwapliku,nazwastruktury;
typedef struct bud{
int idtab;
bool exist; 
char nazbud[];   
bool dodsur;
char jakie[9];
int podstawowe;
bool producenergi;
bool dodatnia;
bool zwproduk;
char czego[16];};

typedef struct bad{
int idtab;
bool exist; 
char nazwbada[];   
bool wmgm;
int ilem;
bool wmgk;
int ilek;
bool wmgd;
int iled;};

void wybierzplik(){
    cout<<"Wybierz baze (dowolny inny klawisz-wruc do oprzedniego menu)\n1-budynki\n2-badania";
    cin>>a;
    switch (a){
            case 1:
                nazwapliku="budnk.dat";
                nazwastruktury="bud";
                b=1;
                break;
                default:
                        ;
                        break;}}
void write_to_binary_file(nazwastruktury p_Data)
    {
          fstream binary_file("nazwapliku",ios::out|ios::binary|ios::app);
          binary_file.write(reinterpret_cast<char *>(&p_Data),sizeof(nazwastruktury));
          binary_file.close();
    }

w miejscu nazwa struktury powinno byc wlasciwa nazwa struktury, prubuje zmienic przy pomocy case ale nic z tego,da sie to jakos ukrucic??zeby nie pisac kodu 7 razy
błedy wypluwane to:
42 C:\Dev-Cpp\strukturabazy.cpp variable or field `write_to_binary_file' declared void
42 C:\Dev-Cpp\strukturabazy.cpp expected `)' before "p_Data"
43 C:\Dev-Cpp\strukturabazy.cpp cannot convert `std::string' to `int' in initialization
43 C:\Dev-Cpp\strukturabazy.cpp expected `,' or `;' before '{' token

struktur bedzie wiecej i opcji :mellow:


w miejscu nazwa struktury powinno byc wlasciwa nazwa struktury, prubuje zmienic przy pomocy case ale nic z tego,da sie to jakos ukrucic??zeby nie pisac kodu 7 razy
błedy wypluwane to:
42 C:\Dev-Cpp\strukturabazy.cpp variable or field `write_to_binary_file' declared void
42 C:\Dev-Cpp\strukturabazy.cpp expected `)' before "p_Data"
43 C:\Dev-Cpp\strukturabazy.cpp cannot convert `std::string' to `int' in initialization
43 C:\Dev-Cpp\strukturabazy.cpp expected `,' or `;' before '{' token

struktur bedzie wiecej i opcji :mellow:

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •