Начало

This commit is contained in:
2023-04-28 17:07:49 +06:00
parent d7c4a38bc8
commit a68593fb4d
3 changed files with 161 additions and 197 deletions

View File

@ -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();
}// </editor-fold>//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<model.getRowCount();row++){
parse(
model.getValueAt(row,0).toString(),
model.getValueAt(row,1).toString(),
model.getValueAt(row,2).toString(),
model.getValueAt(row,3).toString(),
model.getValueAt(row,4).toString()
);
}
}//GEN-LAST:event_jButton1ActionPerformed
@ -404,31 +418,16 @@ public class NewJFrame extends javax.swing.JFrame
private void jBSaveSettingsActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jBSaveSettingsActionPerformed
{//GEN-HEADEREND:event_jBSaveSettingsActionPerformed
FileWriter fileWriter = null;
try
{
Ini ini = new Ini(new File("O:\\temp\\settings.ini"));
Ini ini = new Ini(new File("settings.ini"));
ini.put("main", "db_url", jTFDBURL.getText());
ini.put("main", "db_user", jTFDBUser.getText());
ini.put("main", "db_password", jTFDBPassword.getText());
ini.store();
fileWriter = new FileWriter("settings.txt");
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.write(textArea2.getText());
bufferedWriter.close();
} catch (IOException ex)
{
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
} finally
{
try
{
fileWriter.close();
} catch (IOException ex)
{
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
}//GEN-LAST:event_jBSaveSettingsActionPerformed
@ -440,30 +439,8 @@ public class NewJFrame extends javax.swing.JFrame
private void formWindowActivated(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowActivated
try {
File file = new File("O:\\temp\\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"));
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");
model.addRow(new Object[]{path, extensions, check});
System.out.print(path);
}
}
//ini.store();
}
} catch (IOException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}//GEN-LAST:event_formWindowActivated
@ -516,8 +493,7 @@ public class NewJFrame extends javax.swing.JFrame
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton5;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JCheckBox jCheckBox1;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
@ -532,6 +508,5 @@ public class NewJFrame extends javax.swing.JFrame
private javax.swing.JTabbedPane jTabbedPane1;
private javax.swing.JTable jTable1;
private java.awt.TextArea textArea1;
private java.awt.TextArea textArea2;
// End of variables declaration//GEN-END:variables
}