diff --git a/settings.ini b/settings.ini
new file mode 100644
index 0000000..c0c664d
--- /dev/null
+++ b/settings.ini
@@ -0,0 +1,10 @@
+[main]
+db_url = jdbc\:postgresql\://10.1.7.74\:5432/pilot
+db_user = translate
+db_password = translate
+[path0]
+path=O:\\projects\\Workspace_PHP\\transit.istt.kz
+check=[0-9|a-z|A-Z|_]+
+extensions=*.php
+pattern=trt(
+type=5
\ No newline at end of file
diff --git a/src/potoxml/NewJFrame.form b/src/potoxml/NewJFrame.form
index c1e2af3..0dc969a 100644
--- a/src/potoxml/NewJFrame.form
+++ b/src/potoxml/NewJFrame.form
@@ -29,13 +29,12 @@
-
-
-
-
-
+
+
+
+
@@ -48,12 +47,14 @@
-
-
-
+
-
+
+
+
+
+
@@ -73,10 +74,7 @@
-
-
-
-
+
@@ -89,20 +87,14 @@
-
-
-
-
+
+
+
+
-
-
-
-
-
-
@@ -111,15 +103,8 @@
-
-
-
-
-
-
-
-
+
@@ -141,12 +126,12 @@
-
+
-
+
@@ -161,11 +146,12 @@
-
+
@@ -199,7 +185,7 @@
-
+
@@ -231,7 +217,7 @@
-
+
@@ -276,21 +262,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -314,9 +285,17 @@
-
+
-
+
+
+
+
+
+
+
+
+
diff --git a/src/potoxml/NewJFrame.java b/src/potoxml/NewJFrame.java
index 22e163b..82cb6ea 100644
--- a/src/potoxml/NewJFrame.java
+++ b/src/potoxml/NewJFrame.java
@@ -35,25 +35,35 @@ public class NewJFrame extends javax.swing.JFrame
*/
public NewJFrame()
{
- initComponents();
+ initComponents();
+
+ setTitle("GettextDB");
+
+ try {
+ File file = new File("settings.ini");
+ if(file.exists()){
+ Ini ini = new Ini(file);
+ jTFDBURL.setText(ini.get("main", "db_url"));
+ jTFDBUser.setText(ini.get("main", "db_user"));
+ jTFDBPassword.setText(ini.get("main", "db_password"));
- //Загружаем настройки из текстового файла
- BufferedReader reader;
- try
- {
- reader = new BufferedReader(new FileReader("settings.txt"));
- String line = null;
- while ((line = reader.readLine()) != null)
- {
- textArea2.append(line + "\n");
- }
- } catch (FileNotFoundException ex)
- {
- Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
- } catch (IOException ex)
- {
- Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
- }
+ DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
+ for(int i=0;i<100;i++){
+ if(ini.get("path"+i)!=null){
+ String path = ini.get("path"+i, "path");
+ String check = ini.get("path"+i, "check");
+ String extensions = ini.get("path"+i, "extensions");
+ String pattern = ini.get("path"+i, "pattern");
+ String type = ini.get("path"+i, "type");
+ model.addRow(new Object[]{path, extensions, pattern, check, type });
+ System.out.print(path);
+ }
+ }
+ //ini.store();
+ }
+ } catch (IOException ex) {
+ Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
+ }
}
/**
@@ -79,13 +89,11 @@ public class NewJFrame extends javax.swing.JFrame
jLabel6 = new javax.swing.JLabel();
jTFDBPassword = new javax.swing.JTextField();
jButton5 = new javax.swing.JButton();
- jLabel2 = new javax.swing.JLabel();
- jButton3 = new javax.swing.JButton();
- textArea2 = new java.awt.TextArea();
jBSaveSettings = new javax.swing.JButton();
jButton1 = new javax.swing.JButton();
textArea1 = new java.awt.TextArea();
- jLabel1 = new javax.swing.JLabel();
+ jButton3 = new javax.swing.JButton();
+ jCheckBox1 = new javax.swing.JCheckBox();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
addWindowListener(new java.awt.event.WindowAdapter() {
@@ -96,17 +104,14 @@ public class NewJFrame extends javax.swing.JFrame
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
- {null, null, null, null},
- {null, null, null, null},
- {null, null, null, null},
- {null, null, null, null}
+
},
new String [] {
- "Файл/Путь", "Расширения файлов", "Шаблон поиска", "Шаблон проверки"
+ "Файл/Путь", "Расширения файлов", "Шаблон поиска", "Шаблон проверки", "ID типа слов"
}
) {
Class[] types = new Class [] {
- java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
+ java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Integer.class
};
public Class getColumnClass(int columnIndex) {
@@ -119,11 +124,11 @@ public class NewJFrame extends javax.swing.JFrame
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 746, Short.MAX_VALUE)
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 915, Short.MAX_VALUE)
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 179, Short.MAX_VALUE)
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 149, Short.MAX_VALUE)
);
jTabbedPane1.addTab("Настройки путей сканирования", jPanel2);
@@ -158,7 +163,7 @@ public class NewJFrame extends javax.swing.JFrame
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTFDBPassword)
.addComponent(jTFDBUser)
- .addComponent(jTFDBURL, javax.swing.GroupLayout.DEFAULT_SIZE, 621, Short.MAX_VALUE)))
+ .addComponent(jTFDBURL, javax.swing.GroupLayout.DEFAULT_SIZE, 790, Short.MAX_VALUE)))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(jButton5)))
@@ -181,20 +186,11 @@ public class NewJFrame extends javax.swing.JFrame
.addComponent(jLabel6))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton5)
- .addContainerGap(66, Short.MAX_VALUE))
+ .addContainerGap(36, Short.MAX_VALUE))
);
jTabbedPane1.addTab("Настройки соединения с базой", jPanel3);
- jLabel2.setText("Пути для сканирования");
-
- jButton3.setText("Экспорт PO или XML файла");
- jButton3.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- jButton3ActionPerformed(evt);
- }
- });
-
jBSaveSettings.setText("Сохранить настройки");
jBSaveSettings.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
@@ -209,16 +205,11 @@ public class NewJFrame extends javax.swing.JFrame
.addGroup(jPanel5Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jTabbedPane1)
.addGroup(jPanel5Layout.createSequentialGroup()
- .addComponent(jLabel2)
- .addGap(200, 200, 200)
- .addComponent(jButton3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
- .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
- .addComponent(textArea2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ .addGap(0, 0, Short.MAX_VALUE)
+ .addComponent(jBSaveSettings)))
.addContainerGap())
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup()
- .addGap(0, 0, Short.MAX_VALUE)
- .addComponent(jBSaveSettings))
);
jPanel5Layout.setVerticalGroup(
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@@ -226,12 +217,6 @@ public class NewJFrame extends javax.swing.JFrame
.addContainerGap()
.addComponent(jTabbedPane1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(jButton3)
- .addComponent(jLabel2))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(textArea2, javax.swing.GroupLayout.PREFERRED_SIZE, 118, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jBSaveSettings)
.addContainerGap())
);
@@ -246,9 +231,7 @@ public class NewJFrame extends javax.swing.JFrame
);
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel4Layout.createSequentialGroup()
- .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(0, 0, Short.MAX_VALUE))
+ .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
);
jButton1.setText("Сканировать");
@@ -259,7 +242,14 @@ public class NewJFrame extends javax.swing.JFrame
}
});
- jLabel1.setText("Перебираем файлы и создаём единый PHP файлик с _(“слово”).");
+ jButton3.setText("Экспорт PO или XML файла");
+ jButton3.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ jButton3ActionPerformed(evt);
+ }
+ });
+
+ jCheckBox1.setText("Экспортировать в базу при сканировании");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
@@ -268,12 +258,12 @@ public class NewJFrame extends javax.swing.JFrame
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addComponent(jLabel1)
- .addGap(0, 0, Short.MAX_VALUE))
.addComponent(textArea1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
- .addGap(0, 0, Short.MAX_VALUE)
+ .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 298, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jCheckBox1)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton1))
.addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
@@ -282,28 +272,29 @@ public class NewJFrame extends javax.swing.JFrame
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(18, 18, 18)
- .addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(textArea1, javax.swing.GroupLayout.PREFERRED_SIZE, 143, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(textArea1, javax.swing.GroupLayout.PREFERRED_SIZE, 380, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(jButton1)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jButton1)
+ .addComponent(jButton3)
+ .addComponent(jCheckBox1))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
pack();
}// //GEN-END:initComponents
- private void parse(String rootDir,String file)
+ private void parse(String rootDir,String extensions,String pattern,String check,String type)
{
// Просматриваем каталоги
FileFinder finder = new FileFinder();
try
{
// Буферный файл для записи идентификаторов
- FileWriter fileWriter = new FileWriter(file);
- BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
- bufferedWriter.write("\n");
+ //FileWriter fileWriter = new FileWriter(file);
+ //BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
+ //bufferedWriter.write("\n");
List searchRes = null;
//searchRes = finder.findAll(rootDir,"(.*\\.as$)||(.*\\.mxml$)||(.*\\.xml$)");
@@ -331,34 +322,63 @@ public class NewJFrame extends javax.swing.JFrame
while((line = bufferedReader.readLine()) != null)
{
int from=0;
+ int to=0;
while(true) //Если несколько значений в строке
{
- String pattern="trt(";
- //int s=line.indexOf("_(", from);
int s=line.indexOf(pattern, from);
if(s>=0)
{
- from=s+pattern.length();
- int e=-1;
- if(line.charAt(s+pattern.length()) == '"') { e=line.indexOf("\")", from); }
- if(line.charAt(s+pattern.length()) == '\'') { e = line.indexOf("')", from); }
- if(e>=0)
- {
- textArea1.append(line.substring(s, e + 2)+";\n");
- bufferedWriter.write(" "+line.substring(s, e + 2)+";\n");
- from=e+2;
+ from=s+pattern.length();
+ to=line.indexOf(")", from);
+ //int e=-1;
+ //if(line.charAt(s+pattern.length()) == '"') { e=line.indexOf("\")", from); }
+ //if(line.charAt(s+pattern.length()) == '\'') { e = line.indexOf("')", from); }
+ if(to>=0)
+ {
+ String text = line.substring(from, to);
+ if(text.indexOf("\"")>=0){ //Если строка с "
+ int pos1 = text.indexOf("\"");
+ int pos2 = text.indexOf("\"",pos1+1);
+ if(pos2>pos1+1){
+ text = text.substring(pos1+1, pos2);
+ }else{
+ text="";
+ }
+ } else
+ if(text.indexOf("'")>=0){ //Если строка с '
+ int pos1 = text.indexOf("'");
+ int pos2 = text.indexOf("'",pos1+1);
+ if(pos2>pos1+1){
+ text = text.substring(pos1+1, pos2);
+ }else{
+ text="";
+ }
+ }else{
+ text="";
}
+
+ if(text.length()>0){
+ if(text.matches("[0-9|a-z|A-Z|_]+")){
+ textArea1.append(text+"\n");
+ }else{
+ textArea1.append("NO VALUD = "+text+"\n");
+ }
+ }
+ from+=to-from;
+ }
+ from+=1;
}else { break; }
+ //line=line.substring(to); //Остатки строки на обработку
}
}
bufferedReader.close();
}
}
- System.out.println("Найдено " + finder.getFilesNumber() + " файлов и " + finder.getDirectoriesNumber() + " папок.");
+ //System.out.println("Найдено " + finder.getFilesNumber() + " файлов и " + finder.getDirectoriesNumber() + " папок.");
textArea1.append("Найдено " + finder.getFilesNumber() + " файлов и " + finder.getDirectoriesNumber() + " папок.\n");
- bufferedWriter.write("?>\n");
- bufferedWriter.close();
+ //bufferedWriter.write("?>\n");
+ //bufferedWriter.close();
} catch (Exception err)
{
@@ -380,23 +400,17 @@ public class NewJFrame extends javax.swing.JFrame
}catch(ClassNotFoundException | SQLException e){
System.out.println(e.getMessage());
}
-
- BufferedReader reader = new BufferedReader(new StringReader(textArea2.getText()));
- String line1;
- String line2;
- try
- {
- while (true)
- {
- line1 = reader.readLine();
- line2 = reader.readLine();
- if(line1==null || line2 == null) break;
- //Парсим файлы и выписываем идентификаторы для перевода
- parse(line1, line2); //Перезаписывает файл
- }
- } catch (IOException ex)
- {
- Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
+
+ //Перебираю значения таблицы и пускаю на сканирование каждое поле
+ DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
+ for(int row=0;row