x-kom hosting

Import z pliku

święty
utworzono
utworzono

Mam taki problem z funkcja importujaca dane z pliku tekstowego. Napisałem tu taki przykładowy program który ma importować tekst z pliku tekstowego...tzn ma w założeniu, bo w rzeczywistości tego nie robi :? a szkoda bo jest mi to bardzo potrzebne

#include <iostream>using namespace std;FILE *fp;main(){	  char nazwa[100];	  char znak, tekst;	  int ok = 0;	  cout << "nPodaj nazwe pliku lub sciezke do niego (wraz z rozszerzeniem .txt)n";	  cin >> nazwa;	  fp = fopen(nazwa, "r");	  if (fp == NULL)		 cout << "nNie ma takiego plikun";	  else		 while ((znak = fgetc(fp)) != EOF)		 {			   tekst = fgetc(fp);			   ok = 1;		 }	  if (ok)		 cout << tekst;	  else		 cout << "nImport zakonczony niepowodzeniemn";	  cout << "nWcisnij ENTER aby kontynuowacn";	  fclose(fp);	  cin.ignore();	  cin.ignore();	  return 0;}

Poradźcie coś...a może by jakąś inną funkcje wykorzystać? Ale jaką i jak ? :)

Przemek
komentarz
komentarz

Tu masz program do tworzenia mini bazy samochodow :)

#include <stdio.h>#include <conio.h>#include <string.h>void menu();void dodaj();void usun();void wyswietl();void zeruj();void eksport();void import();void koniec();struct samochod{char marka[20];char model[20];int rocznik;float silnik;float cena;};int ILE_AUTO=0;FILE* f;samochod s;int main(){int i;do{menu();scanf("%d", &i);switch (i)		{		case 1: dodaj();		break;		case 2: usun();		break;		case 3: wyswietl();		break;		case 4: zeruj();		break;		case 5: eksport();		break;		case 6: import ();		break;		case 7: koniec();		break;		default:		clrscr();		printf("Wybierz inna opcje!!!");		break;		}getch ();}while (i!=7);return 0;}void menu(){clrscr();gotoxy(10,3);printf("Menu - Samochody");gotoxy(10,6);printf("1. Dodaj");gotoxy(10,7);printf("2. Usun");gotoxy(10,8);printf("3. Wyswietl");gotoxy(10,9);printf("4. Zeruj");gotoxy(10,10);printf("5. Eksport do pliku tekstowego");gotoxy(10,11);printf("6. Import");gotoxy(10,12);printf("7. Koniec");gotoxy(10,13);}void dodaj(){clrscr();printf("Dodawanie samochodun");printf("nPodaj marke:");scanf("%s", &s.marka);printf("Podaj model:");scanf("%s", &s.model);printf("Podaj rocznik:");scanf("%d", &s.rocznik);printf("Podaj pojemnosc silnika:");scanf("%f", &s.silnik);printf("Podaj cene:");scanf("%f", &s.cena);f=fopen("auta.bin","r+b");if(!f)		{		f=fopen("auta.bin","wb");		}fseek(f,0,SEEK_END);fwrite(&s,sizeof(s),1,f);fclose(f);//ILE_AUTO++;}void usun(){clrscr();printf("usuwanie samochodu");}void wyswietl(){clrscr();printf("Wyswietlanie samochodu");f=fopen("auta.bin","rb");if (!f)		{		printf("nBrak danych");		}else		{		printf("nnMarkattModelttRocznikttSilnikttCenan");		do				{				if(fread(&s,sizeof(s),1,f))						{						printf("n%stt%stt%dtt%0.2ftt%0.2f", s.marka, s.model, s.rocznik, s.silnik, s.cena);						}				}				while(!feof(f));		}		fclose(f);}void zeruj(){int i_zer;do{clrscr();printf("Zerowanie:");printf("nn1. Zeruj!!!");printf("nn2. Powrot do menu.");scanf("n%d", &i_zer);switch (i_zer)		{		case 1: ILE_AUTO=0;		printf("nWyzerowano!");		break;		case 2:		break;		default:		printf("nZly wybor - sprobuj jeszcze raz");		break;		}}while (i_zer!=2);}void eksport(){FILE* ft;clrscr();f=fopen("auta.bin","rb");ft=fopen("eksport.csv","wt");		do				{				if(fread(&s,sizeof(s),1,f))						{						fprintf(ft,"%s;%s;%d;%0.2f;%0.2fn", s.marka, s.model, s.rocznik, s.silnik, s.cena);						}				}				while(!feof(f));fclose(ft);fclose(f);}void import (){clrscr();char buf [1024];FILE*ft;ft = fopen ("IMPORT.TXT","rt");if (!ft){printf ("nBrak Danych");}else{do		{		if (fgets (buf, sizeof(buf)-1, ft))		{		printf(strtok (buf,";"));		printf("n");		printf(strtok (NULL,";"));		printf("n");		printf(strtok (NULL,";"));		printf("n");		printf(strtok (NULL,";"));		printf("n");		printf(strtok (NULL,";"));		printf("n");		}		}		while (!feof(ft));fclose (ft);}}void koniec(){clrscr();printf("koniec");}
święty
komentarz
komentarz

No prawie prawie :)

czyli w sumie tylko to:

void import (){clrscr();char buf [1024];FILE*ft;ft = fopen ("IMPORT.TXT","rt");if (!ft){printf ("nBrak Danych");}else{do		{		if (fgets (buf, sizeof(buf)-1, ft))		{		printf(strtok (buf,";"));		printf("n");		printf(strtok (NULL,";"));		printf("n");		printf(strtok (NULL,";"));		printf("n");		printf(strtok (NULL,";"));		printf("n");		printf(strtok (NULL,";"));		printf("n");		}		}		while (!feof(ft));fclose (ft);}}

...ale jakby się coś innego znalazło niż strtok i fgets...wyczytałem żeby tego strtok raczej nie stosować :)

Przemek
komentarz
komentarz

Święty, narazie niczego innego nie uzywalem...

święty
komentarz
komentarz

No oki, rozumiem...jak nic innego sie nie znajdzie to kto wie :) Ale dzięki za dobre chęci :D

P.s. a tak w ogóle to ten eksport i import chyba nie do końca działa. Najpierw by sie przydało wyeksportować do jakiegoś pliku ale później zaimportować z pliku O TEJ SAMEJ nazwie...no ale to tak na marginesie :lol:

Przemek
komentarz
komentarz

Święty, import sluzy do ladowania danych do tej bazy, napisanych przez siebie w notatniku :)

święty
komentarz
komentarz

A no w sumie też :D No ale jeśli by ktoś chciał tak próbować "w te i we wte" no to nie pohula :lol:

Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!

Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.