From a68593fb4de59048980158f568a2a5fd20506997 Mon Sep 17 00:00:00 2001 From: igor Date: Fri, 28 Apr 2023 17:07:49 +0600 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B0=D1=87=D0=B0=D0=BB=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- settings.ini | 10 ++ src/potoxml/NewJFrame.form | 85 +++++------- src/potoxml/NewJFrame.java | 263 +++++++++++++++++-------------------- 3 files changed, 161 insertions(+), 197 deletions(-) create mode 100644 settings.ini 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("=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