diff options
Diffstat (limited to 'support/konwerter/czyt_zapis.cc')
-rw-r--r-- | support/konwerter/czyt_zapis.cc | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/support/konwerter/czyt_zapis.cc b/support/konwerter/czyt_zapis.cc new file mode 100644 index 0000000000..cfa797f525 --- /dev/null +++ b/support/konwerter/czyt_zapis.cc @@ -0,0 +1,161 @@ +/* +Copyright (C) 2005 Piotr Wawrzyniak (piti@piti.vsv.pl) + + +Tutaj zawarte są procedury odpowiedzialne za wczytanie lini z pliku +eps (wczytaj_linie) i pliku tex (wczytaj_linie_tex). + +Here there are procedures that read line from eps file (wczytaj_linie) +and tex file (wczytaj_linie_tex) + +*/ +#include"czyt_zapis.h" +extern int debug_level; +extern int language; +int liczsobie; + +int wczytaj_linie(char *linia,int *dlugosc, int DL_WIERSZA, ifstream &czyt) +{ + //miejmy pewność że linia jest jednak naprawde wyzerowana + for(liczsobie=0;liczsobie<DL_WIERSZA;liczsobie++) + { + linia[liczsobie]='\0'; + } + + + if(debug_level) + { + if(language==0) + { + cout<<"**********************************"<<endl; + cout<<"Funkcjon wczytaj_linie"<<endl; + } + else + { + cout<<"**********************************"<<endl; + cout<<"Function wczytaj_linie"<<endl; + } + } + char pomocnicza[DL_WIERSZA],c; + pomocnicza[0]=pomocnicza[1]=pomocnicza[2]='\0'; + int licznik=0; + // if(czyt.eof())return 1; + //if(czyt) cout<<"Nie moge znale~~ pliku"<<endl; + if(debug_level) + { + if(language==0) + { + cout<<"Czytam z pliku z pozycji "<<endl<<czyt.tellg()<<endl; + } + else + { + cout<<"I am reading from file at the position: "<<czyt.tellg()<<endl; + } + } + do + { + if(!czyt.get(c)) + return 1; + else + pomocnicza[licznik++]=c; + pomocnicza[licznik]='\0'; + } + + while((c!='\n')&&(c!=EOF)&&(licznik<(DL_WIERSZA-17))); + + *dlugosc=licznik; + strcpy(linia,pomocnicza); + linia[licznik]='\0'; + if(debug_level) + { + if(language==0) + { + cout<<"Linia została przeczytana. Pozycja w pliku: " + <<(czyt.tellg())<<endl + <<"Przeczytana linia: "<<linia<<endl + <<"Koniec funkcji czytającej linie."<<endl + <<"=========================================="; + + } + else + { + cout<<"The line is now read. The position in the file: " + <<(czyt.tellg())<<endl + <<"The read line: "<<linia<<endl + <<"End of reading line function."<<endl + <<"=========================================="; + } + } + return 0; +} + +int wczytaj_linie_tex(char *linia,int *dlugosc, int dl_WIERSZA, ifstream &czyt) +{ + char pomocnicza[dl_WIERSZA],c[2],b[2]; + int licznik=0; + + if(debug_level) + { + if(language==0) + { + cout<<"*************************************************"<<endl + <<"Funkcja wczytaj_linie_tex"<<endl; + } + else + { + cout<<"*************************************************"<<endl + <<"Function wczytaj_linie_tex"<<endl; + } + } + //wczytaj pierwszy znak ewentualnie może to być koniec pliku + if(!czyt.get(c[0])) + return 1; + else + { + pomocnicza[licznik++]=c[0]; + pomocnicza[licznik]='\0'; + } + int czy_skonczyc=1; + do + { + if(!czyt.get(c[0])) + return 1; + else + { + pomocnicza[licznik++]=c[0]; + pomocnicza[licznik]='\0'; + } + if (c[0]=='\\') + { + czy_skonczyc=0; + licznik--; + czyt.seekg(-1,ios::cur); + } + //char b[2] ; + if(!czyt.get(b[0])) + czy_skonczyc=0; + else + czyt.seekg(-1,ios::cur); + } + + while((c[0]!='\n')&&(licznik<(dl_WIERSZA-17))&&czy_skonczyc); + *dlugosc=licznik; + strcpy(linia,pomocnicza); + if(debug_level) + { + if(language==0) + { + cout<<"Przeczytana linia w pliku TeX: "<<linia<<endl + <<"Koniec funkcji wczytaj_linie_tex"<<endl + <<"==========================================="<<endl; + } + else + { + cout<<"Read line in TeX file: "<<linia<<endl + <<"The end of the wczytaj_linie_tex function"<<endl + <<"==========================================="<<endl; + } + } + linia[licznik]='\0'; + return 0; +} |