święty utworzono 4 maja 2007 utworzono 4 maja 2007 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 4 maja 2007 komentarz 4 maja 2007 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 4 maja 2007 Autor komentarz 4 maja 2007 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ć
święty komentarz 5 maja 2007 Autor komentarz 5 maja 2007 No oki, rozumiem...jak nic innego sie nie znajdzie to kto wie Ale dzięki za dobre chęci 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 5 maja 2007 komentarz 5 maja 2007 Święty, import sluzy do ladowania danych do tej bazy, napisanych przez siebie w notatniku
święty komentarz 5 maja 2007 Autor komentarz 5 maja 2007 A no w sumie też 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.