summaryrefslogtreecommitdiff
path: root/support/konwerter/num_na_etyk.cc
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/konwerter/num_na_etyk.cc
Initial commit
Diffstat (limited to 'support/konwerter/num_na_etyk.cc')
-rw-r--r--support/konwerter/num_na_etyk.cc157
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;
+
+}