%Serienbrief-Style 0.53

\typeout{Serienbriefstyle 0.53 vom 6.3.94 von Gundolf Frank}

%Hier die Adressendatei ndern:
\def\adressendateiname{brief.adr}

\def\greatings{}

\def\optional#1#2[#3]{%
  \escapechar=-1
  \if\def#1%
    \edef#2{\futurelet\noexpand\next
            \csname\string#2@@body\endcsname}
    \expandafter\edef\csname\string#2@@body\endcsname{%
      \noexpand\if[\noexpand\next
                 \def\noexpand\next{\csname\string#2@@do\endcsname}%
                 \noexpand
                \else
                 \def\noexpand\next
                   {\csname\string#2@@do\endcsname
                    [\expandafter
                     \noexpand\csname\string#2@@default\endcsname]}%
                 \noexpand
               \fi
      \noexpand\next}%
    \expandafter\noexpand\expandafter
    \def\csname\string#2@@default\endcsname{#3}%
    \edef\optional@continue{
      \expandafter\noexpand\expandafter
      \def\csname\string#2@@do\endcsname[####1]}%
    \escapechar="5C\relax
    \let\next=\optional@continue
   \else
    \escape="5C
    \errmessage{\string\def fehlt nach \string\optional}
    \let\next=\relax
  \fi
  \next}

\long\def\text#1{\def\serientext{#1}}

\optional\def\serienbrief[{}]#2{
   \def\serienbriefuebergabe{#1}
   \def\zwparameter{#2}
   \ifx\zwparameter\empty
      \errhelp{Bei \serienbrief[Optionen]{suchkriterium} mu\ss{} ein Suchkriterium angegeben werden.}
      \errmessage{Es wurde kein Suchkriterium angegeben!}
   \fi
   \openin7=\adressendateiname
   \loop
     \def\ende{}
     \def\zeile{}
     \def\test{---}
     \endlinechar=-1
     \read7to\zeile
     \ifx\zeile\test
       \read7to\nachname
       \read7to\vorname
       \read7to\firma
       \read7to\abteilung
       \read7to\strasse
       \read7to\ort
       \read7to\tel
       \read7to\cosename
       \ifx\cosename\empty
         \def\cosename{\vorname}
       \fi
       \read7to\geburtsdatum
       \read7to\paraer
       \read7to\parazw
       \read7to\geschlecht
       \read7to\kontakt
       \endlinechar=`\^^M
       \ifx#1\empty
         \ifx\zwparameter\nachname
            \def\ende{gleich}
         \fi
       \fi
       \def\bedingung{Nachname}
       \ifx\serienbriefuebergabe\bedingung
         \ifx\zwparameter\nachname
            \def\ende{gleich}
         \fi
       \fi
       \def\bedingung{Vorname}
       \ifx\serienbriefuebergabe\bedingung
         \ifx\zwparameter\vorname
            \def\ende{gleich}
         \fi
       \fi
       \def\bedingung{Firma}
       \ifx\serienbriefuebergabe\bedingung
         \ifx\zwparameter\firma
            \def\ende{gleich}
         \fi
       \fi
       \def\bedingung{Abteilung}
       \ifx\serienbriefuebergabe\bedingung
         \ifx\zwparameter\abteilung
            \def\ende{gleich}
         \fi
       \fi
       \def\bedingung{Strasse}
       \ifx\serienbriefuebergabe\bedingung
         \ifx\zwparameter\strasse
            \def\ende{gleich}
         \fi
       \fi
       \def\bedingung{Ort}
       \ifx\serienbriefuebergabe\bedingung
         \ifx\zwparameter\ort
            \def\ende{gleich}
         \fi
       \fi
       \def\bedingung{Telefonnummer}
       \ifx\serienbriefuebergabe\bedingung%
         \ifx\zwparameter\tel
            \def\ende{gleich}
         \fi
       \fi
       \def\bedingung{Faxnummer}
       \ifx\serienbriefuebergabe\bedingung
         \ifx\zwparameter\fax
            \def\ende{gleich}
         \fi
       \fi
       \def\bedingung{E-Mail}
       \ifx\serienbriefuebergabe\bedingung
         \ifx\zwparameter\email
            \def\ende{gleich}
         \fi
       \fi
       \def\bedingung{Geburtsdatum}
       \ifx\serienbriefuebergabe\bedingung
         \ifx\zwparameter\Geburtsdatum
            \def\ende{gleich}
         \fi
       \fi
       \def\bedingung{Cosename}
       \ifx\serienbriefuebergabe\bedingung
         \ifx\zwparameter\cosename
            \def\ende{gleich}
         \fi
       \fi
       \def\bedingung{Zusatz 1}
       \ifx\serienbriefuebergabe\bedingung%
         \ifx\zwparameter\paraer%
            \def\ende{gleich}
         \fi
       \fi
       \def\bedingung{Zusatz 2}
       \ifx\serienbriefuebergabe\bedingung
         \ifx\zwparameter\parazw
            \def\ende{gleich}
         \fi
       \fi
       \def\bedingung{Geschlecht}
       \ifx\serienbriefuebergabe\bedingung
         \ifx\zwparameter\geschlecht
            \def\ende{gleich}
         \fi
       \fi
       \def\bedingung{Kontakt}
       \ifx\serienbriefuebergabe\bedingung%
         \ifx\zwparameter\kontakt%
            \def\ende{gleich}
         \fi
       \fi
       \def\test{gleich}
       \ifx\ende\test
         \def\test{n}%
         \ifx\geschlecht\test%
           \def\@uebergabeletter{%
             \firma\\
             \ifx\abteilung\empty%
               \\
             \else
               Abteilung \abteilung\\
             \fi
             \strasse\\
             \ort
           }
         \fi
         \def\test{w}%
         \ifx\geschlecht\test%
           \ifx\firma\empty%
             \def\@uebergabeletter{%
               Frau\\
               \vorname\space\nachname\\
               \strasse\\
               \ort
             }
           \else
             \def\@uebergabeletter{%
               \firma\\
               \ifx\abteilung\empty%
               \else
                 Abteilung \abteilung\\
               \fi
               \ifx\nachname\empty
                 \ \\
               \else
                 z.H. Frau \nachname\\
               \fi
               \strasse\\
               \ort
             }
           \fi
         \fi
         \def\test{m}%
         \ifx\geschlecht\test%
           \ifx\firma\empty
             \def\@uebergabeletter{%
               Herr\\
               \vorname\space\nachname\\
               \strasse\\
               \ort
             }
           \else 
             \def\@uebergabeletter{%
               \firma\\
               \ifx\abteilung\empty%
               \else
                 Abteilung \abteilung\\
               \fi
               \ifx\nachname\empty
                 \ \\
               \else
                 z.H. Herr \nachname\\
               \fi
               \strasse\\
               \ort
             }
           \fi
         \fi   
         \typeout{}
         \typeout{Anschrift gefunden:}
          \if\firma\empty
         \else
           \typeout{\firma}
         \fi
         \if\abteilung\empty
         \else
           \typeout{Abteilung\space\abteilung}
         \fi  
         \typeout{\vorname\space\nachname}
         \typeout{\strasse}
         \typeout{\ort}
         \typeout{}
         \begin{letter}{\@uebergabeletter}
           \def\test{herzlich}
           \ifx\test\kontakt
             \def\test{m}
             \ifx\test\geschlecht 
               \def\@uebergabe{
                 Lieber \cosename,
               }
             \fi
             \def\test{w}
             \ifx\test\geschlecht 
               \def\@uebergabe{
                 Liebe \cosename,
                 \fi
               }
             \fi
             \def\test{n}
             \ifx\test\geschlecht 
               \def\@uebergabe{
                 Liebe Damen und Herren,
               }
             \fi
           \fi
           \def\test{formal}
           \ifx\test\kontakt
             \def\test{m}
             \ifx\test\geschlecht 
               \def\@uebergabe{
                 Sehr geehrter \nachname,
               }
             \fi
             \def\test{w}
             \ifx\test\geschlecht 
               \def\@uebergabe{
                 Sehr geehrte Frau \nachname,
               }
             \fi
             \def\test{n}
             \ifx\test\geschlecht 
               \def\@uebergabe{
                 Sehr geehrte Damen und Herren,
               }
             \fi
           \fi
           \opening{\@uebergabe}
           \serientext
           \ifx\greatings\empty
             \def\test{herzlich}
             \ifx\test\kontakt
               \closing{Mit herzlichen Gren}
             \fi
             \def\test{formal}
             \ifx\test\kontakt
               \closing{Mit freundlichen Gren}
             \fi
           \else
             \closing{\greatings}
           \fi
         \end{letter}
         \def\ende{}
       \fi
     \fi
     \ifeof7
       \def\ende{eof}
     \fi
     \ifx\ende\empty
   \repeat
   \closein7
}
\endinput