271

(10 odpowiedzi, napisanych Szablony i filtry)

Oczywiście, podany przeze mnie szablon dotyczy konkretnej postaci wiadomości, w której występuje tekst w takiej postaci, jak opisał kazina23 i w ogólnym przypadku nie zadziała. Można jednak dostosować go do innych celów.

1. Jeżeli odbiorca wiadomości jest wpisany do książki adresowej (i jest tam jego imię i nazwisko), wówczas szablon ma następującą postać:

%_Imie="%ABToFName"%-
%_Imiona=%Put("C:\Imiona_odmiana.txt")%-
%SetPattRegexp="(?isU)^(%_Imie)\s(.*)\s(.)"%-
%RegexpBlindMatch(%_Imiona)%-
%_Wolacz="%SubPatt(2)"%-
%_Plec="%SubPatt(3)"%-
Dzień dobry,

%If:%_Plec=='M':"Panie %_Wolacz, ":%-
$%If:%_Plec=='F':"Pani %_Wolacz, ":""$

Jak widać, pierwsze trzy wiersze podanego wcześniej szablonu zostały zastąpione jednym, który pobiera imię z książki. Dalej wszystko dzieje się tak samo jak opisałem wyżej.

2. Druga możliwość - gdy adresata nie ma w książce,ale w wiadomości podał w jej nagłówku dane w postaci Imię Nazwisko <login@dome.na>. Wtedy pierwszy wiersz powyższego szablonu, czyli wyrażenie:

%_Imie="%ABToFName"%-

należy zastąpić trzema następującymi:

%SetPattRegexp="(?isU)^(.*)(\s.*)"%-
%RegexpBlindMatch(%OFromName)%-
%_Imie="%SubPatt(1)"%-

Oczywiście, możliwości jest więcej - ogólnej recepty raczej nie można podać, bo nadawcy podają swoje dane w różny sposób.

272

(7 odpowiedzi, napisanych Ogólne)

Już są kolejne wersje beta - najnowsza to 8.7.0.12 - do pobrania ze strony RitLabs:

https://www.ritlabs.com/download/files3 … 012-32.rar - wersja 32-bitowa
https://www.ritlabs.com/download/files3 … 012-64.rar - wersja 64-bitowa

273

(10 odpowiedzi, napisanych Szablony i filtry)

Czy wiadomość, jaką otrzymujesz, jest w formacie HTML? Jeżeli tak, to spróbuj zmienić trzy pierwsze wiersze w szablonie na następujące:

%SetPattRegexp="(?isU)^(.*)(Imię i nazwisko:\s)(.*)\s"%-
%RegexpBlindMatch(%OText)%-
%_Imie="%SubPatt(3)"%-

To powinno załatwiać sprawę - sądziłem, że oryginał jest w formacie czysto tekstowym i wtedy pierwszy szablon powinien działać. Przy HTML prawdopodobnie tekst "Imię i nazwisko" nie rozpoczyna się na samym początku wiersza i dlatego należy stosować ten nowy wariant. Ten wariant jest bardziej ogólny.

274

(10 odpowiedzi, napisanych Szablony i filtry)

Muszę Cię prosić o przesłanie prywatnie przykładowej wiadomości wyeksportowanej z The Bat!. Tylko wtedy będzie można postawić diagnozę co jest nie tak. Sprawdzałem to na kilku przykładach u siebie i wszystko działało, ale lepiej mieć oryginał do dalszych badań.

275

(10 odpowiedzi, napisanych Szablony i filtry)

Udało się rozwiązać problem za pomocą szablonu podręcznego z wyrażeniami regularnymi i pliku tekstowego zawierającego polskie imiona wraz z ich odmianą (wołacz) i znacznikiem płci (litera "M" lub "F"). Plik ma w oddzielnych wierszach wpisane imiona w formacie Imię Imię_w_wołaczu Płeć. Podany niżej szablon podręczny nazwałem Odmiana_imion. Wynikiem działania tego szablonu jest tekst z powitaniem i odpowiednio odmienionym imieniem wybranym na podstawie oryginalnej wiadomości zawierającej imię i nazwisko (tak jak podałeś). Wynik działania szablonu musisz wstawić na początek swojego szablonu odpowiedzi za pomocą makropolecenia %QInclude="Odmiana_imion".

%SetPattRegexp="(?isU)^(Imię i nazwisko:\s)(.*)\s"%-
%RegexpBlindMatch(%OText)%-
%_Imie="%SubPatt(2)"%-
%_Imiona=%Put("C:\Imiona_odmiana.txt")%-
%SetPattRegexp="(?isU)^(%_Imie)\s(.*)\s(.)"%-
%RegexpBlindMatch(%_Imiona)%-
%_Wolacz="%SubPatt(2)"%-
%_Plec="%SubPatt(3)"%-
Dzień dobry,

%If:%_Plec=='M':"Panie %_Wolacz, ":%-
$%If:%_Plec=='F':"Pani %_Wolacz, ":""$

Jak to działa? Najpierw za pomocą wyrażenia regularnego jest wyodrębniane z oryginalnej wiadomości imię i zapisywane do zmiennej %_Imie. Następnie do zmiennej %_Imiona jest wstawiana zawartość pliku C:\Imiona_odmiana.txt (przesyłam go prywatnie, pamiętaj o zachowaniu ścieżki lub jej modyfikacji w szablonie). Za pomocą innego wyrażenia w zmiennej %_Imiona jest wyszukiwana wartość %_Imie, a po wyszukaniu pobierana jest odpowiednio odmiana imienia (zmienna %Wolacz) i znacznik płci (zmienna %_Plec). Dalsze instrukcje warunkowe na podstawie zawartości zmiennej %_Plec (M, F lub pusta) wstawiają do odpowiedzi właściwy tekst.

276

(10 odpowiedzi, napisanych Szablony i filtry)

Problem rzeczywiście nie jest banalny w przypadku języków takich jak polski. Dosyć dawno temu, gdy funkcjonowały pocztowe listy dyskusyjne poświęcone The Bat!, były jakieś próby rozwiązania tego problemu. O ile dobrze pamiętam, wykorzystywano tam pole "Płeć" z książki adresowej, ale w Twoim przypadku raczej nie będzie to miało zastosowania.

Postaram się odszukać w archiwum ten wątek i może uda się to rozwiązać. Mam także pewien pomysł z wykorzystaniem słownika imion męskich i żeńskich w postaci pliku tekstowego, ale muszę to dokładnie sprawdzić - jak zadziała, dam znać.

Przejrzałem wszystkie funkcje związane z zakładkami listy wiadomości i niestety - nie ma wśród nich opcji zamykającej wszystkie zakładki. Można zamknąć tylko zakładkę bieżącą, ale przecież nie o to Ci chodzi.

Jeżeli chcesz włączać zakładki na zasadzie zero-jedynkowej (są wszystkie lub nie ma żadnej), powinieneś użyć opcji Pokaż zakładki listy wiadomości z menu głównego Środowisko | Zakładki listy wiadomości lub z menu kontekstowego na zakładce. Innej możliwości nie widzę.

279

(7 odpowiedzi, napisanych Ogólne)

Ukazała się wersja beta 8.7.0.1 i rzeczywiście, błąd z literą "ą" został usunięty.

280

(2 odpowiedzi, napisanych Ogólne)

Podejrzewam, że te załączniki pochodzą z poczty wysyłanej przez programy firmy Microsoft - i to jest odpowiedź. Raczej nic nie da się zrobić, jeżeli nadawca nie ma poprawnie skonfigurowanego swojego programu. The Bat! raczej nie ma tu nic do rzeczy.