diff options
Diffstat (limited to 'support/konwerter/num_na_etyk.cc')
-rw-r--r-- | support/konwerter/num_na_etyk.cc | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/support/konwerter/num_na_etyk.cc b/support/konwerter/num_na_etyk.cc new file mode 100644 index 0000000000..801f531667 --- /dev/null +++ b/support/konwerter/num_na_etyk.cc @@ -0,0 +1,157 @@ + + /*************************************************************************** + * * + * Copyright (C) 2005 Piotr Wawrzyniak (piti@piti.vsv.pl) * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +/*procedury zamieniające pliki eps z numerami na etykiety*/ + +#include<stdlib.h> +#include<string.h> +#include<iostream> +#include<fstream> +#include"czyt_zapis.h" +#include<stdio.h> +#include"dl_wiersza.h" +#include<unistd.h> +#include"num_na_etyk.h" +using namespace std; + +int przeszukaj_linie_eps(char*,char*,int&); +extern int language; + + + + +int num_na_etyk(char*nazwa_pliku) +{ + //cout<<"Otwieram plik eps do czytania "<<endl; + ifstream plik_eps(nazwa_pliku); + if(!plik_eps) + { + if(language==0) + { + cout<<"Nie udało się otworzyć pliku "<<nazwa_pliku<<" do czytania. "<<endl<<"Sprawdź prawa."<<endl; + } + else + { + cout<<"Couldn't open "<<nazwa_pliku<<" file for reading. Check permissions."<<endl; + } + return 1; + } + //char nazwatymcz[L_tmpnam]; + //char *nazwa_eps_tymcz; + char nazwa_eps_tymcz[]="konwXXXXXX"; + //nazwa_eps_tymcz=tmpnam(nazwatymcz); + mkstemp(nazwa_eps_tymcz); + ofstream plik_tymcz_eps(nazwa_eps_tymcz); + if(!plik_tymcz_eps) + { + if(language==0) + { + cout<<"Nie mogę utworzyć pliku tymczasowego. Sprawdź prawa."<<endl; + } + else + { + cout<<"Couldn't open temporary file. Check permissions."<<endl; + } + return 1; + } + + int dl_lini; + int kolejnosc; + char c[DL_WIERSZA]; + char etykieta[DL_WIERSZA]; + etykieta[DL_WIERSZA-1]=c[DL_WIERSZA-1]='\0'; + while(!wczytaj_linie(c,&dl_lini,DL_WIERSZA,plik_eps)) + { + + if(przeszukaj_linie_eps(c,etykieta,kolejnosc))//jeśli zwróci 1 lub 2 oznacza że znalazł etykietę + {//początek if + + if(*c=='%')//jeśli na początku linii z etykietą znajduje się procent + { + for(int zmienna=1;c[zmienna]!='\0';zmienna++) + plik_tymcz_eps<<c[zmienna];//i zapisujemy do pliku + wczytaj_linie(c,&dl_lini,DL_WIERSZA,plik_eps);//za tym powinien być numer więc go wczytaj i zgub + + } + else plik_tymcz_eps<<c;//Jeśli nie ma procentu to po prosu zapisz linie + + + } + + else plik_tymcz_eps<<c;//nie znalazł etykiety więc zapisuje linie + + } + + + //Część kopiująca plik tymczasowy na pierwotny eps + +{ + + plik_tymcz_eps.close();//zamykanie plików + plik_eps.close();//zamykanie plików + //cout<<"otwieram plik do zapisu"<<endl; + + ofstream plik_tymcz_eps(nazwa_pliku);//plik wyjściowy nie sugerować się nazwą zmiennej. Pozostawione aby nie psuć dalszych zależności. + + if(!plik_tymcz_eps) + { + if(language==0) + { + cout<<"Nie mogę otworzyć pliku "<<nazwa_pliku<<" do zapisu."<<endl; + } + else + { + cout<<"Couldn't open "<<nazwa_pliku<<" file for writing."<<endl; + } + return 1; + } + + ifstream plik_eps(nazwa_eps_tymcz);//plik wejściowy nie sugerować się nazwą zmiennej. Pozostawione aby nie psuć dalszych zależności. + if(language==0) + { + cout<<"Zmieniam numery na etykiety w pliku: "<<nazwa_pliku<<endl; + } + else + { + cout<<"Changing numbers to labels in "<<nazwa_pliku<<" file"<<endl; + } + if(!plik_eps) + { + if(language==0) + { + cout<<"Nie moge otworzyć pliku tymczasowego do odczytu. Coś poszło nie tak." + <<endl + <<"Zawartość pliku "<<nazwa_pliku<<" możesz znaleźć w "<<nazwa_eps_tymcz<<"."<<endl; + } + else + { + cout<<"I couldn't open temporary file for reading. Something has gone wrong."<<endl + <<"Content of the "<<nazwa_pliku<<" can be found in "<<nazwa_eps_tymcz<<" file."<<endl; + } + return 1; + } + + while(!wczytaj_linie(c,&dl_lini,DL_WIERSZA,plik_eps)) + { + plik_tymcz_eps<<c; + + } + + + plik_eps.close(); + plik_tymcz_eps.close(); +} + //cout<<nazwa_eps_tymcz<<endl; + unlink(nazwa_eps_tymcz); + + return 0; + +} |