Witam wszystkich, w Java piszę niewiele, uczę się tego. Poniżej procedura z małej aplikacji, która ma za zadnie konwertować plik tekstowy.
Nie rozumiem czemu nie wykonuje się instrukcja "label_status.setText("Plik zapisany");", sam program działa zgodnie z oczekiwaniami,
tzn. generuje plik wynikowy w oczekiwanej postaci.
Przepraszam, że napisałem to w treści ale nie działa mi formatowanie tekstu, też nie wiem czemu :) zamiast bold wstawiają się gwiazdki.
Debian 9, Java 1.8 .. 13, Netbeans 12.0
Jarek.
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String plik, lnbuf, nrdok = "x", nip = "x", datafv = "x", nazwaodb = "x";
String elem[] = null;
StringBuilder xx = null; String Nazwa;
jFileChooser1.addChoosableFileFilter(new FileNameExtensionFilter("Pliki zamówieñ","kt0"));
jFileChooser1.setAcceptAllFileFilterUsed(false);
jFileChooser1.setCurrentDirectory(new File("/home/jarek/VM_SHARE/sources/java/PCMHelper/dane"));
if (jFileChooser1.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
plik = jFileChooser1.getSelectedFile().toString();
label_plik.setText(plik);
try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(plik)));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(plik + ".txt")))) {
while ((lnbuf = br.readLine()) != null && !lnbuf.contains("-KSBLOZ-")) {
if (lnbuf.contains("Numer faktury")) {
nrdok = lnbuf.substring(16, lnbuf.length());
}
if (lnbuf.contains("Data faktury")) {
datafv = lnbuf.substring(15, lnbuf.length());
}
}
// nie udalo sie znalezc poczatku pozycji, przerywam wykonanie proceduty
if (lnbuf != null && !lnbuf.contains("-KSBLOZ-")) {
return;
}
AddPCMHeader(bw, nrdok, nip, datafv, nazwaodb);
// czytamy pozycje dokumentu
while (lnbuf != null) {
// zostaw tylko jedną spację miedzy słowami
lnbuf = br.readLine();
if (lnbuf.length() > 110) {
xx = new StringBuilder(lnbuf.substring(110).trim());
int yy = xx.indexOf(" ");
while (yy > 0) {
xx.delete(yy, yy + 1);
yy = xx.indexOf(" ");
}
}
// rozdziel elementy rozdzielona spacja
elem = xx.toString().split("\\s");
// jeżeli tablica ma mniej niż 11 elementów, to
if (elem == null || elem.length < 11) {
return;
}
AddPCMPoz( bw, elem[1], elem[2], elem[5], "szt", elem[6], elem[5]);
}
label_status.setText("Plik zapisany");
} catch (FileNotFoundException ex) {
label_status.setText("Nie moṡna wczytaæ pliku");
} catch (IOException ex) {
label_status.setText("problem zapis/odczyt");
}
}
}