Witam,
Napisałem prostą bazę danych z możliwością zapisu do pliku i odczytu. Problem jak opisałem w temacie po krótce, polega na tym że, napisane funkcje są wywoływane (z mojej wiedzy na temat programowania wynika że, poprawnie) ale nie zwracają żadnych wartości do jakich przecież zostały napisane. Zadany katalog zapisu istnieje, wprowadzam zmienną "nazwa" jako "c://pliki/......". to chyba tyle, jeżeli potrzebna są jakie kolwiek jeszcze szczegóły dorzucę.
Pozdrawiam, Krzysiek.
#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
char zapis (char nazwa[40], char text[255])
{
fstream plik_zapis;
plik_zapis.open(nazwa,ios::out|ios::binary);
plik_zapis.write(text,strlen(text));
plik_zapis.close();
fstream lista;
lista.open("C://pliki/lista.dat",ios::out|ios::app);
lista.write(nazwa,strlen(nazwa));
lista.close();
return 0;
}
int odczyt (char *dane, char nazwa[40], int dlugosc_pliku)
{
fstream plik_odczyt;
plik_odczyt.open(nazwa,ios::in|ios::binary);
plik_odczyt.seekg(0,ios::end);
dlugosc_pliku=plik_odczyt.tellg();
dane=new char[dlugosc_pliku+1];
plik_odczyt.seekg(0,ios::beg);
plik_odczyt.read(dane,dlugosc_pliku);
plik_odczyt.close();
dane[dlugosc_pliku]=0;
cout << dane;
delete[]dane;
return 0;
}
int odczyt_listy (char *dane, char nazwa[40], int dlugosc_pliku)
{
fstream lista_odczyt;
lista_odczyt.open("c://pliki.lista.dat",ios::in|ios::binary);
lista_odczyt.seekg(0,ios::end);
dlugosc_pliku=lista_odczyt.tellg();
dane=new char[dlugosc_pliku+1];
lista_odczyt.seekg(0,ios::beg);
lista_odczyt.read(dane,dlugosc_pliku);
lista_odczyt.close();
dane[dlugosc_pliku]=0;
cout << dane;
delete[]dane;
return 0;
}
int main()
{
int w;
char nazwa[40], text[255];
cout << "Witaj w menu, co chesz zrobic? " << endl;
cout << endl;
cout << "Aby stworzyc i zapisac plik wybierz [1] " << endl;
cout << "Aby odczytac plik wybierz [2]" << endl ;
cout << "Aby wyświetlic liste plikow wybierz [3] " << endl;
cout << "Aby wyjsc z programu wybierz [0] " << endl ;
cin >> w;
cout << endl;
switch(w)
{
case 1: char zapis (char nazwa[40], char text[255]);
cout << "Podaj sciezke i nazwe pliku w formacie: " <<endl;
cout << "X://KATALOG/NAZWA.ROZSZERZENIE " << endl;
cin >> nazwa[40];
cout << endl;
cout << "Podaj teraz co chcesz wpisac do pliku " << endl;
cin >> text[255];
return 0;
case 2: int odczyt (char *dane, char nazwa[40], int dlugosc_pliku);
cout << "Podaj sciezke i nazwe pliku w formacie: " <<endl;
cout << "WINDOWS " << endl;
cout << endl;
cin >> nazwa[40];
return 0;
case 3: int odczyt_listy (char *dane, char nazwa[40], int dlugosc_pliku);
cin >> nazwa[40];
return 0;
case 0: if (w == 0)
{
break;
}
}
return 0;
}