home *** CD-ROM | disk | FTP | other *** search
/ Global Amiga Experience / globalamigaexperience.iso / applications / databases / sbase4pro / mail / mailit.sbp < prev    next >
Text File  |  1995-07-10  |  24KB  |  1,045 lines

  1. SBP
  2.  ÿ½ ** Geschrieben von Mark C. Johnson, übersetzt von C. Gülicher und C. Gallagher
  3.  
  4.  ÿ½ ** Konfigurationsroutine: Liest Variablen der letzten Sitzung ein, aktiviert die Fehlererkennung, und
  5.  ÿ½    weist einigen im Formular benutzten Variablen bestimmte Werte zu.
  6.  
  7.  ÿ³ÿ_ÿwErrtrap
  8.  ÿ×prs%(5,5),a$(3),e$(3),c$(3),c%(3)
  9.  ÿâÿe
  10.  ÿÊÿË"Setting up..."
  11.  ÿÊ"MDEFAULT"
  12.  pth$ÿÿŽ
  13.  activity$ÿ""
  14.  
  15.  ÿ¬1,1,1,"&Add to Mailing List"
  16.  ÿ¬1,2,1,"&Merge Lists        "
  17.  ÿ¬1,3,1,"&Edit Mailing List  "
  18.  ÿ¬1,4,1,"Print &Labels       "
  19.  ÿ¬1,5,1,"&Utilities          "
  20.  ÿ¬1,6,1,"&Purge Duplicates   "
  21.  ÿ¬1,7,1,"Set &Options        "
  22.  ÿ¬1,8,1,"&Help               "
  23.  ÿ¬1,9,1,"&Quit               "
  24.  
  25. MainMenu: 
  26.  
  27.  ÿ½ ** Main Menu - Diese Routine benutzen wir um unser systemweites Befehlsmenu zu initialisieren.
  28.  ÿ½    Tastendrücke, Mausklicks und Menuauswahlen werden hier überprüft.
  29.  ÿ½    Das Bildschirmformular und weitere Kleinigkeiten werden hier ebenfalls eingerichtet.
  30.  
  31.  ÿÊÿåÿ¥ÿe
  32.  ÿÊÿË"Click, Type, or Select Menu Command."
  33.  activity$ÿ""
  34.  ÿŽpth$
  35.  ÿ´ÿœ"Mailit"ÿí2
  36.  ÿ¥1,"!GOTO Helpme"
  37.  ÿÊÿŸ"Superbase Mailing List System"
  38.  ÿ¬1,0,1,"&Commands"
  39.  ÿ¬ÿ³clm%,sel%
  40.  ccr%ÿ0:cc%ÿ0:ent%ÿ0:a$ÿ"":ret%ÿ0:helpsel%ÿ0:zr%ÿ0
  41.  sel%ÿ0:a$ÿ"":srtn%ÿ0
  42.  ÿÏÿ¬ÿÿ¥ÿÿß
  43.  
  44. MM1: 
  45.  
  46.  ÿ½ ** Diese Routine übernimmt die Auswahl und ermittelt, worauf der Benutzer
  47.  ÿ½    zugreifen möchte.
  48.  
  49.  ÿ¬1,0,0," "
  50.  ÿ³sel%ÿwAddEnts,MergeEnts,EditEnts,PrintLabs,Utilities,PurgeEnts,SetOpts,Helpme,Quitit
  51.  
  52.  ÿ½ ** Wenn wir hier angekommen sind, muß der Benutzer eine Taste gedrückt oder außerhalb einer
  53.  ÿ½ ** Drucktaste geklickt haben.
  54.  
  55.  ÿa$
  56.  ÿvFlushBuffer
  57.  a$ÿÿ>(a$)
  58.  sel%ÿÿ?("AMELUPOHQ",ÿ>(a$))
  59.  ÿ¡a$ÿÿ(27)ÿpsel%ÿ9
  60.  ÿ¡a$ÿ"?"ÿpsel%ÿ8
  61.  
  62.  ÿ¡sel%ÿwMM1
  63.  ÿ
  64.  ÿwMainMenu
  65.  
  66. AddEnts: 
  67.  
  68.  ÿ½ ** 'Set up Area' hinzufügen
  69.  
  70.  ret%ÿ9:helpsel%ÿ1
  71.  ÿÊÿŸ"Add to Mailing List"
  72.  activity$ÿ"Data Entry Form"
  73.  ÿ´ÿœ"AddForm"
  74.  ÿÊÿË"ESC=Stop  |  SHIFT+TAB=Previous Field"
  75.  
  76. AE1: 
  77.  
  78.  ÿ½ ** Das Herz der Routine Add. Schaut nach, ob Formular leer bei Ende der Eingabe.
  79.  
  80.  ÿÿœ
  81.  Land ÿ"USA"
  82.  ÿÎ
  83.  ÿßÿ³
  84.  ÿ”1,0
  85.  ÿ¡Vorname ÿ""ÿ Nachname ÿ""ÿ Firma ÿ""ÿpactivity$ÿ"":ÿwMainMenu
  86.  ÿÌÿœ
  87.  ÿwAE1
  88.  
  89. MergeEnts: 
  90.  
  91.  ÿ½ ** Oberfläche 'Zusammenführen' - prg% entscheidet,
  92.  ÿ½ ** ob wir zusammenführen (0), oder löschen (9)
  93.  
  94.  ÿœ6
  95.  ÿÊÿË"Merge Databases..."
  96.  ret%ÿ9:helpsel%ÿ2
  97.  ÿ¥1,"!GOTO H1"
  98.  merl%ÿ4:automan%ÿ1
  99.  ÿÊÿŸ"Merge Entries"
  100.  bHelp1$ÿ"Help"
  101.  bModify$ÿ"Set Thresholds"
  102.  bCancel$ÿ"Cancel Merge"
  103.  bOK$ÿ"Begin Merge"
  104.  prg%ÿ0
  105.  ÿwMEBegin
  106.  
  107. PurgeEnts: 
  108.  
  109.  ÿ½ ** Lösch-Oberfläche
  110.  
  111.  ÿœ6
  112.  ÿÊÿË"Purge Databases..."
  113.  ret%ÿ9:helpsel%ÿ6
  114.  ÿ¥1,"!GOTO H1"
  115.  merl%ÿ1:automan%ÿ1
  116.  ÿÊÿŸ"Purge Entries"
  117.  bModify$ÿ"Set Thresholds"
  118.  bHelp$ÿ"Help"
  119.  bCancel$ÿ"Cancel Purge"
  120.  bOK$ÿ"Begin Purge"
  121.  prg%ÿ9
  122.  
  123. MEBegin: 
  124.  ÿÊÿË"ESC=Stop  |  B=Begin  |  T=Set Thresholds"
  125.  cnt%ÿ0
  126.  ÿwME21
  127.  
  128. ME1: 
  129.  
  130.  ÿ½ ** Auf Eingabe warten - war es ein Mausklick ?
  131.  
  132.  ÿÎ
  133.  cnt%ÿ0:a$ÿ""
  134.  ÿÏÿ¥ÿÿß
  135.  ÿa$
  136.  ÿvFlushBuffer
  137.  ÿ¡a$ÿ""ÿwME2
  138.  ÿ¡cnt%ÿ
  139. 0ÿwH1
  140.  ÿ¡cnt%ÿ50ÿwMainMenu
  141.  ÿ¡cnt%ÿ999ÿwMChangePreset
  142.  ÿ¡cnt%ÿ0ÿwME21
  143.  ÿwME3
  144.  
  145. ME2: 
  146.  
  147.  ÿ½ ** Welche Taste wurde gedrückt - Ideal für SELECT CASE
  148.  
  149.  z%ÿÿ0(a$)
  150.  ÿ¡z%ÿ0ÿpz%ÿmerl%
  151.  a$ÿÿ>(a$)
  152.  ÿÉÿæa$
  153. ÿæ"H","?"
  154. ÿwH1
  155. ÿæ"C",ÿ(27)
  156. ÿwMainMenu
  157. ÿæ"V"
  158. automan%ÿ2:ÿwME21
  159. ÿæ"M"
  160. automan%ÿ1:ÿwME21
  161. ÿæ"O"
  162. automan%ÿ3:ÿwME21
  163. ÿæ"T"
  164. ÿwMChangePreset
  165. ÿæ"B"
  166. ÿwME3
  167. ÿæÿ^
  168. ÿ¡z%ÿ5ÿwME1
  169. merl%ÿz%
  170.  ÿ’ÿÉ
  171.  
  172. ME21: 
  173.  
  174.  ÿ½ ** Voreingestellte Werte aus vordefiniertem Array übernehmen
  175.  
  176.  prs1%ÿprs%(merl%,1)
  177.  prs2%ÿprs%(merl%,2)
  178.  prs3%ÿprs%(merl%,3)
  179.  prs4%ÿprs%(merl%,4)
  180.  prs5%ÿprs%(merl%,5)
  181.  ÿwME1 
  182.  
  183. MChangePreset: 
  184.  
  185.  ÿ½ ** Voreinstellung ändern und speichern
  186.  
  187.  ÿ”1,5
  188.  prs%(merl%,1)ÿprs1%
  189.  prs%(merl%,2)ÿprs2%
  190.  prs%(merl%,3)ÿprs3%
  191.  prs%(merl%,4)ÿprs4%
  192.  prs%(merl%,5)ÿprs5%
  193.  ÿ´"mdefault"ÿ›ÿ¶
  194.  ÿ{ÿ«
  195.  ÿ†ÿ¶
  196.  ÿwME21
  197.  
  198. ME3: 
  199.  
  200.  ÿ½ ** Diese Routine bereitet den Boden für die Duplikate-Suchen-Routine.
  201.  ÿ½ ** Sie öffnet benötigte Formulare, wenn man neue Daten aufnehmen will
  202.  ÿ½ ** (durch Zusammenführen), prüft sie, ob die Datei das richtige Format
  203.  ÿ½ ** hat und importiert sie anschließend.
  204.  
  205.  ÿ¡prg%ÿ0ÿpst$ÿ"Importing":st1$ÿ"Import"ÿ^st$ÿ"Purging Section of":st1$ÿ"Purge"
  206.  R%ÿÿA("MailBase")
  207.  ÿ¡prg%ÿ0ÿp
  208. ÿÊÿË"Importing file..."
  209. ÿÂ"File to import:","",11,n%,fln$
  210. ÿ¡n%ÿ0ÿwMergeEnts
  211. ÿ¡ÿJ(fln$ÿ".sbf")ÿ0ÿpÿÂ"Cannot find file ",fln$ÿ".sbf",21,n%:ÿwMergeEnts
  212. bModify$ÿ"Importing...":bHelp$ÿ"Importing...":bCancel$ÿ"Importing...":bOK$ÿ"Importing..."
  213. ÿÎ
  214. ÿxFieldNameData
  215. z1%ÿ0
  216. ÿ´fln$ÿ".sbd"ÿ›ÿ¤
  217. I1: 
  218. ÿ¼b$
  219. ÿ¤ÿca$
  220. ÿ¡ÿ-(a$,1)ÿ">"ÿpz1%ÿ9
  221. a$ÿÿF(ÿ+(a$,15))
  222. ÿ¡ÿ>(a$)ÿÿ>(b$)ÿwNoWay
  223. ÿ¡b$ÿ"Versch2"ÿwOKDokey
  224. ÿ¡z1%ÿpz1%ÿ0:ÿ¤ÿca$
  225. ÿwI1
  226. NoWay: 
  227. ÿ†ÿ¤
  228. ÿÂ"This file does not match the MailBase","parameters.  Re-configure and try again.",114,n%
  229. ÿwMainMenu
  230. OKDokey: 
  231. ÿ†ÿ¤
  232. ÿ¢fln$ÿ".sbf"ÿqÿ™"MailBase"
  233.  ÿ’ÿ¡
  234.  
  235.  ÿ½ ** Sobald die importierte Datei mit MAILBASE zusammengeführt ist, kann der Anwender die einzelnen
  236.  ÿ½ ** Datensätze standardisieren. D.h., er kann sie  gemäß den Umwandlungsregeln, die in der Datei
  237.  ÿ½ ** RULEBASE definiert sind, umwandeln - z.B. alle 'Str.' in 'Straße' ändern. Damit erhöht sich die  
  238.  ÿ½ ** Wahrscheinlichkeit, Duplikate zu erkennen.
  239.  ÿ½ ** Wenn der Benutzer keine Standardisierung vornehmen möchte, schaltet das Programm zu der unten
  240.  ÿ½ ** aufgelisteten Routine BegStand, bevor es mit der Suche nach doppelten Datensätzen beginnt.
  241.  ÿ¡prg%ÿ0ÿp
  242. srtn%ÿ9
  243. ÿÂ"Do You Wish to Standardize the Database First?","",130,n%
  244. ÿ¡n%ÿ0ÿpsrtn%ÿ0:ÿwBeg
  245. ÿvBegStand
  246. srtn%ÿ0
  247.  ÿ’ÿ¡
  248.  
  249. Beg: 
  250.  
  251.  ÿ½ ** Nach der Standardisierung wird die Routine Beg ausgeführt. Diese ruft FindDupes auf, gibt
  252.  ÿ½ ** die Ergebnisse auf dem Bildschirm aus und kehrt zum Hauptmenü zurück.
  253.  
  254.  md%ÿÿA("MailBase")
  255.  ÿvFindDupes
  256.  ÿ¡(prs1%ÿprs2%ÿprs3%ÿprs4%ÿprs5%ÿ0)ÿ prg%ÿpÿÉÿ¾ÿ™"MailBase"
  257.  fl%ÿÿA("MailBase")
  258.  activity$ÿst1$ÿ" complete"ÿÿ(13)
  259.  activity$ÿactivity$ÿ"Initial Record Count was "ÿÿH(ÿ(R%,5,0))ÿ","ÿÿ(13)
  260.  ÿ¡prg%ÿ0ÿp
  261. activity$ÿactivity$ÿÿH(ÿ(md%ÿR%,5,0))ÿ" Records Imported"ÿÿ(13)
  262.  ÿ’ÿ¡
  263.  activity$ÿactivity$ÿÿH(ÿ(md%ÿfl%,5,0))ÿ" Records Purged"ÿÿ(13)
  264.  activity$ÿactivity$ÿÿH(ÿ(fl%,5,0))ÿ" Records Remaining"ÿÿ(13)
  265.  ÿœ1
  266.  ÿÊÿË"Press any key to continue..."
  267.  ÿÏÿ¥a$
  268.  ÿwMainMenu
  269.  
  270. FindDupes: 
  271.  
  272.  ÿ½ ** Dies ist das Herz der Zusammenfügen/Löschen Routinen, da hier tatsächlich die
  273.  ÿ½    Duplikate ermittelt werden und gemäß Anwenderwunsch behandelt werden.
  274.  
  275.  ÿ¡prg%ÿ0ÿ (prs1%ÿprs2%ÿprs3%ÿprs4%ÿprs5%ÿ0)ÿpÿÃ
  276.  ÿ¡prg%ÿ (prs1%ÿprs2%ÿprs3%ÿprs4%ÿprs5%ÿ0)ÿp
  277. ÿÂ"WARNING! All thresholds are currently set to zero, this","will delete all records in the file. Proceed?",148,n%
  278. ÿ¡n%ÿ0ÿwPurgeEnts
  279. ÿÂ"Are you sure?","",135,n%
  280. ÿ¡n%ÿ0ÿwPurgeEnts
  281.  ÿ’ÿ¡
  282.  ÿÊÿË"Removing current index..."
  283.  ÿ™"MailBase"
  284.  ÿ³ÿ_ÿwNoIndex
  285.  ÿ£VirFeld.MailBase
  286.  ÿ¾ÿ£VirFeld.MailBase
  287.  ÿwGoOn
  288. NoIndex: 
  289.  ÿyGoOn
  290.  ÿ’
  291. GoOn: 
  292.  ÿ³ÿ_ÿwErrtrap
  293.  crit$ÿ"LEFT$(PLZ.MailBase,"ÿÿH(ÿ(prs%(merl%,5),2,0))ÿ")+LEFT$(Nachname.Mailbase,"ÿÿH(ÿ(prs%(merl%,1),2,0))ÿ")+left$(Adresse1.MailBase,"ÿÿH(ÿ(prs%(merl%,2),2,0))ÿ")+left$(Firma.MailBase,"
  294.  crit$ÿcrit$ÿÿH(ÿ(prs%(merl%,3),2,0))ÿ")+left$(Stadt.MailBase,"ÿÿH(ÿ(prs%(merl%,4),2,0))ÿ")"
  295.  ÿÊÿË"Creating Index..."
  296.  ÿ¡srtn%ÿpsrtn%ÿ0:ÿœ5
  297.  bModify$ÿ"Wait..."
  298.  bHelp$ÿ"Wait..."
  299.  bCancel$ÿ"Wait..."
  300.  bOK$ÿ"Wait..."
  301.  ÿÎ
  302.  ÿ®VirFeld.MailBase,"VirFeld;VTX CLC RDO;50;14;0",crit$
  303.  ÿ‰ÿ£ÿ³VirFeld.MailBase
  304.  
  305.  ÿ½ ** An dieser Stelle ist der Index vorhanden und das Programm kann - nachdem einige Einstellungen
  306.  ÿ½ ** vorgenommen wurden - damit beginne, nach identischen Schlüsseln zu suchen. Dazu benutzt es den
  307.  ÿ½ ** Befehl SELECT DUPLICATE.
  308.  
  309.  ÿ™"MailBase"
  310.  ÿ¡automan%ÿ
  311. 3ÿp
  312. ÿœ5
  313. ÿ^
  314. activity$ÿ"Wait, "ÿst$ÿ" database...":ÿœ1
  315.  ÿ’ÿ¡
  316.  ÿÊÿËst$ÿ" database..."
  317.  bKeep$ÿ"Keep":bDelete$ÿ"Delete":bRplace$ÿ"Replace"
  318.  ÿ¡automan%ÿ1ÿpbKeep$ÿ"Auto Mode":bDelete$ÿ"Auto Mode":bRplace$ÿ"Auto Mode"
  319.  ÿ¡automan%ÿ2ÿpbDelete$ÿ"Searching..."
  320.  ÿÉÿ`
  321.  recproc%ÿ0
  322.  numdups%ÿ0
  323.  
  324. FD1: 
  325.  
  326.  ÿ½ ** Diese Routinen durchlaufen jeden Datensatz in der Datenbank und suchen nach Duplikaten.
  327.  
  328.  ÿink$
  329.  ÿ¡ink$ÿÿ(27)ÿink$ÿ"C"ÿpÿÃ
  330.  a10$ÿVirFeld.MailBase
  331.  recproc%ÿrecproc%ÿ1
  332.  ÿ¡automan%ÿ
  333. 3ÿp
  334. ÿ¡automan%ÿ2ÿpbDelete$ÿ"Searching..."
  335. a1$ÿVorname.MailBase
  336. a2$ÿNachname.MailBase
  337. a3$ÿFirma.MailBase
  338. a4$ÿAdresse1.MailBase
  339. a5$ÿAdresse2.MailBase
  340. a6$ÿStadt.MailBase
  341. a7$ÿB_Land.MailBase
  342. a8$ÿPLZ.MailBase
  343. a9$ÿÿ(Eingabedatum.MailBase,"mm/dd/yyyy")
  344. a11$ÿ""
  345. ÿÿœ:ÿÎ:ÿÉÿY
  346.  ÿ’ÿ¡
  347. FD2: 
  348.  
  349.  ÿ½ ** Hiermit ist der Bildschirm aufgebaut, und wir haben einen aktuellen Index.
  350.  ÿ½ ** Existieren Duplikate ?
  351.  
  352.  ÿÉÿ]
  353.  ÿ¡ÿB("MailBase")ÿp
  354. ÿÉÿ±ÿ™"MailBase"
  355. ÿ¡ÿB("MailBase")ÿpÿÃ
  356. ÿwFD1
  357.  ÿ^
  358. ÿ¡automan%ÿ
  359. 2ÿp
  360. numdups%ÿnumdups%ÿ1
  361. ÿ
  362. a11$ÿVirFeld.MailBase
  363. ÿÎ
  364. bCmd%ÿ0
  365. MF1: 
  366.  
  367. ÿ½ ** Ha ! Doppelgänger erwischt ! Nachfragen, ob löschen oder behalten.
  368.  
  369. ÿÊÿË"ESC=Stop  |  D=Delete  |  K=Keep  |  R=Replace"
  370. ÿÏÿ¥ÿÿß
  371. ÿ¡bCmd%ÿ0ÿpÿa$:a$ÿÿ>(a$)
  372. ÿ¡bCmd%ÿ3ÿa$ÿ"R"ÿpa11$ÿVirFeld.MailBase:ÿÉÿ¥a10$:ÿÉÿ¾ÿ™"MailBase":ÿÉÿ¥a11$:ÿwFD1
  373. ÿ¡bCmd%ÿ2ÿa$ÿ"D"ÿpÿÉÿ¾ÿ™"MailBase":ÿÉÿ¥a10$:ÿwFD1
  374. ÿ¡bCmd%ÿ1ÿa$ÿ"K"ÿp
  375. ÿÉÿ±ÿ™"MailBase"
  376. ÿ¡ÿB("MailBase")ÿpÿÃ
  377. ÿwFD1
  378. ÿ’ÿ¡
  379. ÿ¡a$ÿ"C"ÿa$ÿÿ(27)ÿpÿÃ
  380. ÿwMF1
  381. ÿ^
  382. ÿ¡automan%ÿ2ÿpnumdups%ÿnumdups%ÿ1:bDelete$ÿ"Deleting...":a11$ÿVirFeld.MailBase:ÿÎ
  383. ÿÉÿ¾ÿ™"MailBase"
  384. ÿÉÿ¥a10$
  385. ÿwFD1
  386. ÿ’ÿ¡
  387.  ÿ’ÿ¡
  388.  ÿwFD1
  389.  
  390. EditEnts: 
  391.  
  392.  ÿ½ ** Diese Routine erlaubt das Bearbeiten, Sichten, Ändern und Löschen der Datensätze.
  393.  
  394.  ÿÊÿŸ"Edit Mailing List"
  395.  ret%ÿ9:helpsel%ÿ3
  396.  ÿÊÿåÿ¥ÿ³
  397.  ÿ¥1,"!activity$=~~:open form ~Mailit~:GOTO H1"
  398.  ÿ¥2,"!GOTO Editit"
  399.  ÿ¥3,"!GOTO Deleteit"
  400.  ÿ¥10,"!GOTO DropFunctions"
  401.  activity$ÿ"Data Editing Form"
  402.  ÿÉÿ`
  403.  ÿ´ÿœ"AddForm"
  404.  cc%ÿ1
  405.  
  406. EE1: 
  407.  
  408.  ÿ½ ** Wartet auf Tastatureingaben und schaltet das Tastenfeld ein, damit man Datensätze suchen kann.
  409.  
  410.  a$ÿ""
  411.  ÿÊÿË"ESC=Stop  |  E=Edit  |  D=Delete  |  Shift+F1=Help"
  412.  ÿÏÿâÿÿ¥
  413.  ÿa$
  414.  ÿvFlushBuffer
  415.  a$ÿÿ>(a$)
  416.  ÿ¡a$ÿ"?"ÿa$ÿ"H"ÿpÿ´ÿœ"Mailit":ÿwH1
  417.  ÿ¡a$ÿ"E"ÿwEditit
  418.  ÿ¡a$ÿ"D"ÿwDeleteit
  419.  ÿ¡a$ÿÿ(27)ÿa$ÿ"C"ÿa$ÿ"Q"ÿwDropFunctions
  420.  ÿwEE1
  421.  
  422. Editit: 
  423.  
  424.  ÿ½ ** Benutzer will diesen Datensatz bearbeiten; ist OK.
  425.  
  426.  ÿÊÿË"Editing Record..."
  427.  ÿßÿ³
  428.  ÿ”1,0
  429.  ÿÌÿ™"MailBase"
  430.  ÿwEE1
  431.  
  432. Deleteit: 
  433.  
  434.  ÿ½ ** Diesen Datensatz wirklich löschen ?
  435.  
  436.  ÿÊÿË"Delete Record..."
  437.  ÿÂ"Are you sure you wish to delete this record?","",135,n%
  438.  ÿ¡n%ÿpÿÉÿ¾ÿ™"MailBase"
  439.  ÿÎ
  440.  ÿwEE1
  441. DropFunctions: 
  442.  
  443.  ÿ½ ** Bearbeitung beenden.  Funktionstastenbelegung löschen
  444.  
  445.  ÿ¥2
  446.  ÿ¥3
  447.  ÿ¥10
  448.  cc%ÿ0
  449.  activity$ÿ""
  450.  ÿâÿe
  451.  ÿwMainMenu
  452.  
  453. PressanyKey: 
  454.  
  455.  ÿ½ ** Subroutine, um Tastendrücke entgegenzunehmen
  456.  
  457.  ÿÊÿË"Press any Key to continue..."
  458.  ÿÏa$
  459.  ÿwMainMenu
  460.  
  461. PrintLabs: 
  462.  
  463.  ÿ½ ** Etikettendruckroutine.
  464.  ÿ½    Alle Etiketten-Dateien tragen die Endung .SBB
  465.  
  466.  ÿÊÿŸ"Print Labels"
  467.  ÿÊÿË"Printing Labels..."
  468.  c$ÿ""
  469.  fln$ÿ"*.SBB"
  470.  ÿÂ"Select the Labels Definition","To print with:",18,n%,fln$
  471.  ÿ¡n%ÿ0ÿwMainMenu
  472.  ÿ¨ÿ¦fln$
  473.  ÿxLabData
  474.  ÿ›x%ÿ0ÿq3
  475. ÿ¼a$(x%),e$(x%)
  476. c%(x%)ÿx%ÿ1
  477.  ÿ±x%
  478. P0: 
  479.  z%ÿ1
  480.  ÿÂ"Please choose what field(s)","To sort on:",20,zz%,z%,50,c%,a$
  481.  ÿ¡zz%ÿ0ÿwMainMenu
  482.  ÿ¡z%ÿ1ÿwPL1
  483.  ÿ¡z%ÿ4ÿz%ÿ
  484. 1ÿpÿÂ"Illegal Selection,","Re-Enter!",113,n%:ÿwP0
  485.  ÿÊÿË"One Moment... Creating Index..."
  486.  activity$ÿ"One Moment,"ÿÿ(13)ÿÿ(13)ÿ"Building Index..."
  487.  ÿœ1
  488.  ÿ³ÿ_ÿwP1
  489.  ÿ¾ÿ£VirFeld
  490.  ÿwP2
  491. P1: 
  492.  ÿyP2
  493.  ÿ’
  494. P2: 
  495.  ÿ³ÿ_ÿwErrtrap
  496.  ÿ®VirFeld,"VirFeld ; vtx clc rdo ; 50 ; 14 ; 0 ",e$(z%ÿ1)
  497.  ÿ‰ÿ£ÿ³VirFeld
  498.  ÿ£VirFeld
  499. PL1: 
  500.  ÿ¦ÿÐÿ~
  501.  ÿ†ÿ˜
  502.  ÿwMainMenu
  503.  
  504.  ÿ½ ** Lab Data enthält die Daten für den Requester 20.
  505.  ÿ½    Weitere Suchkriterien können hinzugefügt werden durch Veränderung der
  506.  ÿ½    x%- und DIM-Größen, sowie durch das Anfügen eines DATA
  507.  ÿ½    Befehls am Listenende mit dem Titel
  508.  ÿ½    und dem aktuellen Ausdruck, nach dem sortiert werden soll.
  509.  
  510. LabData: 
  511.  ÿŠ"Don't Sort.",""
  512.  ÿŠ"Sort by LastName.","Nachname"
  513.  ÿŠ"Sort by Zip Code.","PLZ"
  514.  ÿŠ"Sort by Zip Code and LastName.","pad$(PLZ,10)+Nachname"
  515.  
  516. Utilities: 
  517.  
  518.  ÿ½ ** Das Hilfsmittel Menü.
  519.  
  520.  ÿÊÿŸ"Mailing List Utilities"
  521.  ÿœ9
  522.  ÿÊÿË"Select Utility..."
  523.  ÿ¥1,"!goto H1"
  524.  helpsel%ÿ5:ret%ÿ9
  525.  
  526. U1: 
  527.  
  528.  ÿ½ ** Überwache Tastendrücke, etc.
  529.  
  530.  a$ÿ"":utilsel%ÿ0
  531.  ÿÏÿ¥ÿÿß
  532.  ÿa$:a$ÿÿ>(a$)
  533.  ÿvFlushBuffer
  534.  ÿÉÿæa$
  535. ÿæ"S"
  536. ÿwConvertit
  537. ÿæ"E"
  538. ÿwExportit
  539. ÿæ"B"
  540. ÿwBackitup
  541. ÿæ"H","?"
  542. ÿwH1
  543. ÿæ"R"
  544. ÿwRestorebase
  545. ÿæ"Q",ÿ(27)
  546. ÿwMainMenu
  547. ÿæÿ^
  548. ÿ³utilsel%ÿwConvertit,Exportit,Backitup,Restorebase,MainMenu,H1
  549.  ÿ’ÿÉ
  550.  ÿwU1
  551.  
  552. Exportit: 
  553.  
  554.  ÿ½ ** Gestattet dem Benutzer, eine ASCII-Datei mit vordefinierten Trennzeichen zu exportieren
  555.  
  556.  ÿÊÿŸ"Exporting Mail Base"
  557.  activity$ÿ""
  558.  ÿœ1
  559.  ÿÊÿË"Exportiing..."
  560.  ÿÂ"Name of Export File?","",4,n%,fln$,50
  561.  ÿ¡n%ÿ0ÿwUtilities
  562.  activity$ÿ"Exporting Mail Base to File '"ÿfln$ÿ"'..."
  563.  ÿÎ
  564.  ÿ™"MailBase"
  565.  ÿ—ÿqfln$ÿÐÿ~ÿsÿ(ÿ0(f1$))ÿÿ(ÿ0(f2$)),ÿ(ÿ0(r1$))ÿÿ(ÿ0(r2$)),"0"
  566.  ÿwUtilities
  567.  
  568. Backitup: 
  569.  
  570.  ÿ½ ** Sicherheitskopie mit neuem Namen anlegen aus der aktuellen MAILBASE-Datei.
  571.  ÿ½ **
  572.  
  573.  ÿÊÿŸ"Back Up Mail Base"
  574.  activity$ÿ""
  575.  ÿœ1
  576.  ÿÊÿË"Select File Name.."
  577.  ÿÂ"Backup Database","to Which File?",11,n%,fln$
  578.  ÿ¡n%ÿ0ÿwUtilities
  579.  ÿ¡ÿJ(fln$)ÿpÿ´ÿ™ÿ+(fln$,ÿ/(fln$)ÿ4):ÿ¾ÿ™ÿ+(fln$,ÿ/(fln$)ÿ4)
  580.  activity$ÿ"Backing up Mail Base to the new Superbase file '"ÿfln$ÿ"'..."
  581.  ÿÊÿË"Backing up your mail base ..."
  582.  ÿÎ
  583.  ÿ™"MailBase"
  584.  ÿÉÿtÿqÿ™fln$
  585.  ÿwUtilities
  586.  
  587. Restorebase: 
  588.  
  589.  ÿ½ ** Restauriere Datenbasis.
  590.  
  591.  ÿÊÿŸ"Restore Mail Base"
  592.  ÿÊÿË"File to Restore from..."
  593.  activity$ÿ""
  594.  ÿœ1
  595.  ÿÂ"Restore from","Which File?",11,n%,fln$
  596.  ÿ¡n%ÿ0ÿwUtilities
  597.  ÿ¡ÿJ(fln$ÿ".sbf")ÿ0ÿpÿÂ"Cannot find database "ÿfln$,"",113,n%:ÿwUtilities
  598.  ÿÂ"Proceeding with this action will overwrite","all data in the present database. Continue?",148,n%
  599.  ÿ¡n%ÿ0ÿwUtilities
  600.  ÿxFieldNameData
  601.  z1%ÿ0
  602.  
  603.  ÿ½ ** Wenn Kompatibilität sichergestellt ist, aktuelle Datenbasis löschen, neue erstellen
  604.  ÿ½ ** und das Feld Nachname indizieren.
  605.  
  606.  ÿ´fln$ÿ".sbd"ÿ›ÿ¤
  607. Rb1: 
  608.  ÿ¼b$
  609.  ÿ¤ÿca$
  610.  ÿ¡ÿ-(a$,1)ÿ">"ÿpz1%ÿ9
  611.  a$ÿÿF(ÿ+(a$,15))
  612.  ÿ¡ÿ>(a$)ÿÿ>(b$)ÿwGetoutofHere
  613.  ÿ¡z1%ÿpz1%ÿ0:ÿ¤ÿca$
  614.  ÿ¡b$ÿ"Versch2"ÿwYeppers
  615.  ÿwRb1
  616. GetoutofHere: 
  617.  ÿ†ÿ¤
  618.  ÿÂ"This file is not in the Mail Base","format.  Re-configure and try again.",113,n%
  619.  ÿwUtilities
  620. Yeppers: 
  621.  
  622.  ÿ½ ** Korrektes Format, also alte Datei mit neuen Daten überschreiben.
  623.  
  624.  ÿ†ÿ¤
  625.  activity$ÿ"Restoring database..."
  626.  ÿÊÿË"Restoring database..."
  627.  ÿœ1
  628.  cc%ÿ1
  629.  ÿ¾ÿaÿ™"MailBase"
  630.  ÿ¢fln$ÿ".sbf"ÿqÿ™"MailBase"
  631.  cc%ÿ0
  632.  ÿwUtilities
  633.  
  634. BegStand: 
  635.  activity$ÿ""
  636.  ÿœ1
  637.  ÿ´ÿ™"RuleBase"
  638.  ÿwCI1
  639.  
  640. Convertit: 
  641.  
  642.  ÿ½ ** Dies ist die famose Standardisierungsroutine.
  643.  
  644.  activity$ÿ""
  645.  ÿœ9
  646.  ÿÊÿË"Are you sure?"
  647.  ÿÊÿŸ"Standardize Mail Database"
  648.  ÿŽpth$
  649.  ÿ´ÿ™"RuleBase"
  650.  ÿÂ"This process can take a considerable time for "ÿÿH(ÿ(ÿA("MailBase"),5,0))ÿ" records,","do you wish to continue?",148,n%
  651.  ÿ¡n%ÿ0ÿwUtilities
  652. CI1: 
  653.  ÿÊÿË"Standardizing Mail Base..."
  654.  activity$ÿ"Processing Rule Base..."
  655.  ÿœ1
  656.  ctx%ÿ1
  657.  ÿÍRegel_nr.RuleBaseÿctx%:ctx%ÿctx%ÿ1
  658.  
  659.  ctx%ÿ1
  660.  ÿÍRecNum.MailBaseÿctx%:ctx%ÿctx%ÿ1
  661.  
  662.  ÿ£Regel_nr.RuleBase
  663.  ÿœ10
  664.  rctotal%ÿÿA("MailBase")
  665.  rcleft%ÿÿA("MailBase")
  666.  rcnum%ÿ0
  667.  totrul%ÿÿA("RuleBase")
  668.  onrul%ÿ0
  669.  ÿvUpdateScreen
  670.  ÿ™"MailBase"
  671.  ÿ£recnum.mailbase
  672.  ÿÉÿ`ÿ™"MailBase"
  673.  ÿÉÿ`ÿ™"RuleBase"
  674. C1: 
  675.  ÿ½ ** Mit der Routine C1 bildet das Programm die Zeichenkette zz$, die das enthält, wonach
  676.  ÿ½ ** gerade gesucht wird. Wenn die Variable nsp% auf 0 gesetzt ist, wird eine Leerstelle
  677.  ÿ½ ** am Ende nicht beachtet. Ist ihr Wert 1, wird sie beachtet.
  678.  ÿ½ ** Die Variable wh% hat den Wert 1, falls zz$ irgendwo im Feld stehen darf,
  679.  ÿ½ ** 2 wenn zz$ nur am Ende und 3 wenn zz$ nur am Anfang stehen darf.
  680.  
  681.  ÿk$
  682.  ÿ¡k$ÿÿ(27)ÿpÿÉÿÐ:ÿÉÿ`:ÿwEndStand
  683.  ÿ¡ÿB("RuleBase")ÿwCend
  684.  onrul%ÿonrul%ÿ1
  685.  rcnum%ÿ0
  686.  rcleft%ÿÿA("MailBase")
  687.  ÿvUpdateScreen
  688.  nsp%ÿ0:wh%ÿ1
  689.  z$ÿLookFor
  690.  ÿ¡ÿ+(z$,1)ÿ"*"ÿpz$ÿÿ,(z$,2):wh%ÿ2
  691.  ÿ¡ÿ+(z$,1)ÿ"^"ÿpz$ÿÿ,(z$,2):wh%ÿ3
  692.  zz$ÿ""
  693.  ÿ›x%ÿ1ÿqÿ/(z$)
  694. ÿ¡ÿ,(z$,x%,1)ÿ"!"ÿp
  695. zz$ÿzz$ÿ""
  696. ÿ^ÿ¡ÿ,(z$,x%,1)ÿ"@"ÿp
  697. zz$ÿzz$ÿ" "
  698. ÿ^
  699. zz$ÿzz$ÿÿ,(z$,x%,1)
  700. ÿ’ÿ¡
  701.  ÿ±x%
  702.  ÿ¡ÿ?(z$,"!")ÿpnsp%ÿ1
  703.  ex$ÿ"select where "ÿFeldname.RuleBaseÿ" like "ÿÿ(34)ÿ"*"ÿÿH(ÿF(zz$))ÿ"*"ÿÿ(34)
  704.  ÿ–ex$
  705.  ex$ÿ""
  706.  ÿÉÿ`ÿ™"Mailbase"
  707. C20: 
  708.  
  709.  ÿ½ ** a$ wird auf den zu suchenden Feldinhalt gesetzt und fügen zum Suchen noch ein 'Space' an.
  710.  
  711.  ex$ÿ"a$="ÿFeldname.RuleBase
  712.  ÿ–ex$
  713.  ex$ÿ""
  714.  a$ÿa$ÿ" "
  715.  ÿ¡ÿB("MailBase")ÿpÿÉÿ±ÿ™"RuleBase":ÿwC1
  716.  rcnum%ÿRecnum.mailBase
  717.  rcleft%ÿrctotal%ÿrcnum%
  718.  ÿvUpdateScreen
  719.  
  720. CRemake: 
  721.  
  722.  ÿ½ ** Ist zz$ in a$ enthalten ? Falls ja, eventuell Übereinstimmung.
  723.  
  724.  zz%ÿÿ?(ÿ>(a$),ÿ>(zz$))
  725.  ÿ¡zz%ÿ0ÿpÿÉÿ±ÿ™"MailBase":ÿwC20
  726.  ÿ¡nsp%ÿ1ÿ ÿ,(a$,zz%ÿÿ/(zz$),1)ÿ" "ÿpÿÉÿ±ÿ™"MailBase":ÿwC20
  727.  ÿ¡zz%ÿ1ÿ wh%ÿ3ÿpÿÉÿ±ÿ™"MailBase":ÿwC20
  728.  ÿ¡wh%ÿ2ÿp
  729. ÿ¡zz%ÿÿ/(zz$)ÿ4ÿ
  730. ÿ/(a$)ÿp
  731. ÿÉÿ±ÿ™"MailBase":ÿwC20
  732. ÿ’ÿ¡
  733.  ÿ’ÿ¡
  734.  ÿ¡zz%ÿ
  735. 2ÿpff$ÿ""ÿ^ff$ÿÿ+(a$,zz%ÿ1)
  736.  af$ÿÿ,(a$,zz%ÿÿ/(zz$))
  737.  Ct$ÿChangeTo
  738.  pw%ÿ1
  739.  ÿ¡ÿ+(Ct$,1)ÿ"*"ÿppw%ÿ2:Ct$ÿÿ,(Ct$,2)
  740.  ÿ¡ÿ+(Ct$,1)ÿ"^"ÿppw%ÿ3:Ct$ÿÿ,(Ct$,2)
  741.  ch$ÿ""
  742.  ÿ›x%ÿ1ÿqÿ/(Ct$)
  743. ÿ¡ÿ,(Ct$,x%,1)ÿ"@"ÿpch$ÿch$ÿ" "ÿ^ch$ÿch$ÿÿ,(Ct$,x%,1)
  744.  ÿ±x%
  745.  ÿ¡ÿ>(ÿ,(a$,zz%,ÿ/(ch$)))ÿÿ>(ch$)ÿpÿÉÿ±ÿ™"MailBase":ÿwC20
  746.  ÿ¡ÿ?(Ct$,"~")ÿpch$ÿ" "
  747.  ÿ¡pw%ÿ1ÿpa$ÿff$ÿch$ÿaf$
  748.  ÿ¡pw%ÿ2ÿpa$ÿff$ÿaf$ÿch$
  749.  ÿ¡pw%ÿ3ÿpa$ÿch$ÿff$ÿaf$
  750.  ex$ÿFeldname.RuleBaseÿ"=a$"
  751.  a$ÿÿH(ÿF(a$))
  752.  ÿ–ex$
  753.  ex$ÿ""
  754.  ÿ™"MailBase"
  755.  ÿÌ,1
  756.  ÿÉÿ±ÿ™"MailBase"
  757.  ÿwC20
  758.  
  759. Cend: 
  760.  
  761.  ÿ½ ** Fertig ! Und ab dafür...
  762.  
  763.  ÿ™"MailBase"
  764.  ÿÌ,2
  765.  ÿ†ÿt
  766.  activity$ÿ"Standardization Complete."ÿÿ(13)
  767.  ÿ¡srtn%ÿpactivity$ÿactivity$ÿ"Now Processing Merge File..."ÿÿ(13)
  768.  ÿ´ÿœ"Mailit"
  769.  ÿÏÿ›2
  770. EndStand: 
  771.  ÿ¡srtn%ÿpÿÃ
  772.  ÿwUtilities
  773.  
  774. UpdateScreen: 
  775.  
  776.  ÿ½ ** Aktualisiert den Bildschirm, damit der Benutzer auch sieht, warum das solange dauert.
  777.  
  778.  onrul$ÿÿH(ÿ(onrul%,5,0))ÿ" of "ÿÿH(ÿ(totrul%,5,0))ÿ"."
  779.  rcleft$ÿÿH(ÿ(rcleft%,6,0))
  780.  rcnum$ÿÿH(ÿ(rcnum%,6,0))
  781.  ÿ¡rcnum%ÿ0ÿprcnum$ÿ"Searching..."
  782.  ÿÎ
  783.  ÿÃ
  784.  
  785. SetOpts: 
  786.  
  787.  ÿ½ ** Der Abschnitt richtet den Bildschirm und die Routinen ein, die die Eingaben des
  788.  ÿ½ ** Anwenders bearbeiten:
  789.  
  790.  ÿÊÿŸ"Set Mail options"
  791.  bCancel$ÿ"Cancel"
  792.  ÿœ7
  793.  ÿÊÿË"ESC=Stop  |  M=Modify Rules  |  C=Change Separators"
  794.  ÿ¬1,0,0," "
  795. SO1: 
  796.  optsel%ÿ0:a$ÿ""
  797.  ÿÏÿ¥ÿÿß
  798.  ÿ¡optsel%ÿ0ÿpÿa$:a$ÿÿ>(a$):ÿvFlushBuffer
  799.  ÿ¡a$ÿ"M"ÿoptsel%ÿ1ÿwOptsRule
  800.  ÿ¡a$ÿ"C"ÿoptsel%ÿ2ÿwOptsSep
  801.  ÿ¡a$ÿÿ(27)ÿa$ÿ"Q"ÿoptsel%ÿ4ÿwMainMenu
  802.  ÿ¡a$ÿ"H"ÿoptsel%ÿ5ÿphelpsel%ÿ7:ret%ÿ9:ÿwH1
  803.  ÿwSO1
  804.  
  805. OptsRule: 
  806.  
  807.  ÿ½ OK, hier ändern wir Regeln oder fügen neue hinzu.
  808.  ÿ½ Die Regeln lauten: BEIM SUCHEN
  809.  ÿ½ * - Dieses Zeichen am Feldende suchen
  810.  ÿ½ ^ - Dieses Zeichen am Feldanfang suchen
  811.  ÿ½ @ - Identisch mit Leerzeichen
  812.  ÿ½ ! - Feld darf nicht auf Leerzeichen enden
  813.  
  814.  ÿ½ BEIM ERSETZEN:
  815.  ÿ½ * - Resultierende Zeichenkette ans Ende des Feldes
  816.  ÿ½ ^ - Resultierende Zeichenkette an den Anfang des Feldes
  817.  ÿ½ @ - Nur ein Leerzeichen
  818.  ÿ½ ~ - Komplett löschen, durch nichts ersetzen
  819.  
  820.  ÿÊÿŸ"Modify Rule Base"
  821.  ÿÊÿË"Select field to modify..."
  822.  ÿ™"MailBase"
  823.  ÿÂ"Select Field","",9,n%,flnm$
  824.  ÿ´ÿ™"RuleBase"
  825.  ÿ¡n%ÿ0ÿwSetOpts
  826.  ctx%ÿ1
  827.  flnm$ÿÿF(ÿ+(flnm$,15))
  828.  ÿÍRegel_nr.RuleBaseÿctx%:ctx%ÿctx%ÿ1ÿÐFeldname.RuleBaseÿflnm$
  829.  
  830.  ÿ™"RuleBase"
  831.  ex$ÿ"select where FeldName.RuleBase LIKE "ÿÿ(34)ÿflnm$ÿÿ(34)
  832.  ÿ–ex$
  833.  ex$ÿ""
  834.  mdf$ÿ"Modifying the "ÿflnm$ÿ" field"
  835.  ÿ´ÿœ"optsel2"
  836.  cc%ÿ1
  837.  ÿÉÿ`
  838. Op: 
  839.  
  840.  ÿ½ ** Hier kann man Eingaben in die RULEBASE vornehmen, löschen, bearbeiten usw.
  841.  
  842.  ÿÊÿË"ESC=Stop | N=New | D=Delete | E=Edit | M=Modify Other"
  843.  a$ÿ""
  844.  ÿÏÿâÿÿ¥
  845.  ÿÊÿË"ESC=Stop | N=New | D=Delete | E=Edit | M=Modify Other"
  846.  ÿa$
  847.  ÿvFlushBuffer
  848.  a$ÿÿ>(a$)
  849.  ÿ¡a$ÿ"N"ÿwOp1
  850.  ÿ¡a$ÿ"M"ÿpÿ†ÿœ:ÿwOptsRule
  851.  ÿ¡a$ÿ"D"ÿwOp2
  852.  ÿ¡a$ÿ"E"ÿwOp3
  853.  ÿ¡a$ÿÿ(27)ÿa$ÿ"C"ÿpcc%ÿ0:ÿâÿe:ÿÉÿÐ:ÿwMainMenu
  854.  ÿwOp
  855.  
  856. Op1: 
  857.  
  858.  ÿ½ ** Regel hinzufügen
  859.  
  860.  n$ÿ"":ct$ÿ""
  861.  ÿÂ"Enter Value to Look for in Field "ÿflnm$ÿ"?","",4,n%,n$,15
  862.  ÿ¡n%ÿ0ÿwOp
  863.  ÿÿ™"RuleBase"
  864.  FeldName.RuleBaseÿflnm$
  865.  Suche_nach.RuleBaseÿn$
  866.  ÿÂ"Change "ÿn$ÿ" in ?","",4,n%,ct$,40
  867.  ÿ¡n%ÿ0ÿwOp
  868.  Aendern_in.RuleBaseÿct$
  869.  Regel_nr.RuleBaseÿctx%
  870.  ctx%ÿctx%ÿ1
  871.  ÿÌÿ™"RuleBase"
  872.  ÿwOp
  873.  
  874. Op2: 
  875.  
  876.  ÿ½ ** Regel löschen
  877.  
  878.  ÿÂ"Delete the Change "ÿSuche_nach ÿ" to",Aendern_in ÿ" record?",135,n%
  879.  ÿ¡n%ÿ0ÿwOp
  880.  ÿÉÿ¾ÿ™"RuleBase"
  881.  ÿœ1
  882.  ÿwOp
  883.  
  884. Op3: 
  885.  
  886.  ÿ½ ** Ändere Regel
  887.  
  888.  ÿÂ"Change the "ÿSuche_nach ÿ" to "ÿAendern_in,"Record?",135,n%
  889.  ÿ¡n%ÿ0ÿwOp
  890.  n$ÿSuche_nach.RuleBase
  891.  ÿÂ"Alter Look For to ","",4,n%,n$,15
  892.  ÿ¡n%ÿ0ÿwOp
  893.  Suche_nach ÿn$
  894.  n$ÿAendern_in
  895.  ÿÂ"Alter Change To Field to ","",4,n%,n$,40
  896.  ÿ¡n%ÿ0ÿwOp
  897.  Aendern_in ÿn$
  898.  ÿÌÿ™"RuleBase"
  899.  ÿÎ
  900.  ÿwOp
  901.  
  902. OptsSep: 
  903.  
  904.  ÿ½ ** Feld- und Datensatztrennzeichen können auch geändert werden
  905.  
  906.  bCancel$ÿ"Cancel"
  907.  fo1$ÿf1$:fo2$ÿf2$:ro1$ÿr1$:ro2$ÿr2$
  908.  ÿÊÿŸ"Change Export Separators"
  909.  ÿœ8
  910.  ÿÊÿË"ESC=Stop  |  F=Fields  |  R=Records"
  911.  
  912. OS1: 
  913.  
  914.  ÿ½ ** Menü Bearbeitung
  915.  
  916.  optsel%ÿ0:a$ÿ""
  917.  ÿÏÿ¥ÿÿß
  918.  ÿ¡optsel%ÿ0ÿpÿa$:a$ÿÿ>(a$):ÿvFlushBuffer
  919.  ÿ¡a$ÿÿ(27)ÿa$ÿ"C"ÿoptsel%ÿ99ÿpf1$ÿfo1$:f2$ÿfo2$:r1$ÿro1$:r2$ÿro2$:ÿwMainMenu
  920.  ÿ¡a$ÿ"U"ÿoptsel%ÿÿ999ÿwMainMenu
  921.  ÿ¡a$ÿ"F"ÿpÿ”6,2:ÿwCheckup
  922.  ÿ¡a$ÿ"R"ÿpÿ”8,2:ÿwCheckup
  923.  ÿwOS1
  924.  
  925. Checkup: 
  926.  
  927.  ÿ½ ** Gültiges ASCII-Feldtrennzeichen eingegeben vom Anwender ?
  928.  
  929.  ÿ¡ÿ0(f1$)ÿ0ÿ ÿ.(f1$)ÿ48ÿpf1$ÿfo1$
  930.  ÿ¡ÿ0(f2$)ÿ0ÿ ÿ.(f2$)ÿ48ÿpf2$ÿfo2$
  931.  ÿ¡ÿ0(r1$)ÿ0ÿ ÿ.(r1$)ÿ48ÿpr1$ÿro1$
  932.  ÿ¡ÿ0(r2$)ÿ0ÿ ÿ.(r2$)ÿ48ÿpr2$ÿro2$
  933.  ÿ¡ÿ0(f1$)ÿ
  934. 0ÿÿ0(f1$)ÿ255ÿpf1$ÿfo1$
  935.  ÿ¡ÿ0(f2$)ÿ
  936. 0ÿÿ0(f2$)ÿ255ÿpf2$ÿfo2$
  937.  ÿ¡ÿ0(r1$)ÿ
  938. 0ÿÿ0(r1$)ÿ255ÿpr1$ÿro1$
  939.  ÿ¡ÿ0(r2$)ÿ
  940. 0ÿÿ0(r2$)ÿ255ÿpr2$ÿro2$
  941.  ÿÎ
  942.  ÿwOS1
  943.  
  944. Helpme: 
  945.  
  946.  ÿ½ ** Der Haupteingang zur Hilfe-Sektion
  947.  
  948.  ÿÊÿŸ"MailBase Help"
  949.  ret%ÿ0:helpsel%ÿ0
  950.  
  951. HON: 
  952.  
  953.  ÿ½ ** Alle Hilferufe der Hilfsmittel kommen hier an
  954.  
  955.  ÿœ3
  956.  ÿÊÿË"Select Help Topic"
  957.  ÿ¬ÿe
  958.  ÿ¡ret%ÿwH1
  959.  
  960. HNK: 
  961.  
  962.  ÿ½ ** Hilfe-Hauptmenü
  963.  
  964.  ÿÏÿ¥ÿÿß
  965.  ÿa$:hl%ÿÿ?("AMELUPOQS",ÿ>(a$))
  966.  ÿvFlushBuffer
  967.  ÿ¡a$ÿÿ(27)ÿhl%ÿ8ÿhelpsel%ÿ8ÿwEndHelp
  968.  ÿ¡helpsel%ÿhl%ÿ0ÿwHNK
  969.  ÿ¡helpsel%ÿ0ÿphelpsel%ÿhl%
  970.  
  971. H1: 
  972.  
  973.  ÿ½ ** Eigentliche Hilfe, gibt richtigen Bildschirm aus
  974.  
  975.  ÿ´ÿ™"HelpBase"
  976.  hl$ÿ"<Esc> - Quit back to Main | Any other key for more Help."
  977.  ÿ¡ret%ÿphl$ÿ"<Esc> - Quit back to Start | Any other key for more Help."
  978.  ÿÊÿËhl$
  979.  ÿÉÿÐTopic ÿhelpsel%
  980.  ÿÉÿ`
  981.  ÿœ4
  982.  ÿ¡zr%ÿ0ÿ ret%ÿpzr%ÿhelpsel%
  983.  ÿÏÿ¥ÿÿß
  984.  ÿa$
  985.  ÿvFlushBuffer
  986.  ÿ¡a$ÿÿ(27)ÿÿ>(a$)ÿ"Q"ÿwEndHelp
  987.  ÿwHelpme
  988.  
  989. EndHelp: 
  990.  
  991.  ÿ½ ** Zurück zu richtigem Abschnitt
  992.  
  993.  ÿ³zr%ÿwAddEnts,MergeEnts,EditEnts,PrintLabs,Utilities,PurgeEnts,SetOpts
  994.  ÿwMainMenu
  995.  
  996. Quitit: 
  997.  
  998.  ÿ½ ** Abschlußroutine
  999.  
  1000.  ÿÂ"Confirm Exit...","",148,n%
  1001.  ÿ¡n%ÿ0ÿwMainMenu
  1002.  ÿ´"MDefault"ÿ›ÿ¶
  1003.  ÿ{ÿ«
  1004.  ÿ†ÿ¶
  1005.  ÿ†ÿt
  1006.  ÿÊÿŸ""
  1007.  ÿâÿ³
  1008.  ÿ¬ÿ…
  1009.  ÿ’
  1010.  
  1011. FieldNameData: 
  1012.  
  1013.  ÿ½ Diese Daten stellen sicher, daß die Datenbank dasselbe Format hat wie die MAILBASE-Datei
  1014.  
  1015.  ÿŠ"RecNum","VirFeld","Titel","Vorname","Nachname","Firma","Adresse1","Adresse2","Stadt","B_Land","PLZ","Land","Tel_Privat","Tel_Geschaeft","FAX","Anmerkungen","Eingabedatum","Versch1","Versch2"
  1016.  
  1017. FlushBuffer: 
  1018.  
  1019.  ÿ½ Alle zusätzlichen Zeichen loswerden
  1020.  
  1021.  ÿzz1$
  1022.  ÿ¡zz1$ÿ""ÿpÿÃ
  1023.  ÿwFlushBuffer
  1024.  
  1025. Errtrap: 
  1026.  ÿ½ Ein Fehler ist aufgetreten. Der Fehler steht in ERRNO, der Fehlername läßt sich mit ERR$()
  1027.  ÿ½ erfragen. Fehler 11 ist CTRL+C oder Stoptaste.
  1028.  ÿ½ Zum Aufheben der Fehlerbedingung und zur Fortführung der normalen Programmausführung muß
  1029.  ÿ½ RESUME aufgerufen werden. 
  1030.  ÿ½ ** cc%=0 --- Fehler in Programm - unerwartet.
  1031.  ÿ½ ** cc%=1 --- Erwarteter Fehler - zurück zu nächster Anweisung (in derselben Routine) - ich verwende
  1032.  ÿ½ diesen Fehler als Dateiende-Fehler (EOF), der bei der Benutzung von WAITPANEl auftritt.
  1033.  
  1034.  ÿ¡ÿ&ÿ10ÿ cc%ÿ1ÿpÿÊÿË"*** End of File ***":ÿ:ÿÏÿ›.5:ÿyÿ±
  1035.  ÿ¡cc%ÿ1ÿ ÿ&ÿ11ÿpcc%ÿ0:ÿŽpth$:ÿyMainMenu
  1036.  ÿ¡ÿ&ÿ11ÿpÿŽpth$:ÿyMainMenu
  1037.  ÿ¡cc%ÿ1ÿpÿyÿ±
  1038.  ÿÊÿË"****"ÿÿ((ÿ&)ÿ"****"
  1039.  ÿÏÿ›2.0
  1040.  ÿŽpth$
  1041.  ÿyMainMenu
  1042.  
  1043.  
  1044.  
  1045.