<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Sehr geehrter Herr Luckscheiter,<br class=""><br class=""><blockquote type="cite" class="">mit einem kleinen Progämmchen versuche ich, Informationen zu Personen aus der Korrespondenten-Datenbank des Hannoveraner Leibniz-Archvis zu ziehen. Bei vielen funktioniert das auch, nur bei wenigen werden die abgerufenen Sätze länger als 64000 Zeichen und lassen sich nicht weiterverarbeiten.<br class=""><br class="">Der Code-Schnippsel unten gibt für id=140 ganz richtig "Brinon, Marie de" aus, anstatt für id=141 aber "Brosseau, Christophe" zu drucken, wird gemeldet:<br class=""><br class=""><blockquote type="cite" class=""><blockquote type="cite" class=""><blockquote type="cite" class=""><blockquote type="cite" class="">Programmabbruch. END2. length > 64000.<br class=""></blockquote></blockquote></blockquote></blockquote></blockquote><br class="">Der Fehler tritt deshalb auf, weil ein Zeile länger als<br class="">64000 Zeichen ist und die Daten in einer Stern-Variablen<br class="">abgespeichert werden soll. Die maximale Zeilenlänge<br class="">in Stern-Variablen beträgt 64000 (2 hoch 16) Zeichen.<br class=""><br class="">Um das Problem zu umgehen, kann man die Daten<br class="">statt in einer Sternvariablen in einer Datei abspeichern<br class="">und von dort zeilenweise einlesen und verarbeiten.<br class="">Ich habe Ihren Code-Schnipsel <br class=""><br class=""><blockquote type="cite" class="">- Liste mit Ids definieren<br class="">IDs =*<br class=""> DATA 140<br class=""> DATA 141<br class=""><br class="">- über die Liste loopen<br class="">LOOP id= IDs<br class=""> SET adresse = CONCAT ("<a href="https://leibniz.uni-goettingen.de/persons/view/" class="">https://leibniz.uni-goettingen.de/persons/view/</a>", id)<br class=""> SET antw = REQUEST (adresse)<br class=""> SET antw = DECODE (antw, UTF8)<br class=""><br class="">- Namen aus der Antwort extrahieren<br class=""> LOOP port = antw<br class="">    IF (port .CT. ":hauptansetzung:") THEN<br class="">       SET name = STRINGS (port, ":\Name*:")<br class="">       SET name = STRINGS (name, ":value*</div:")<br class="">       SET name = EXTRACT (name, 8,-5)<br class="">     ENDIF<br class=""> ENDLOOP<br class="">- Namen auf der Konsole ausgeben<br class="">   PRINT name<br class="">ENDLOOP<br class=""></blockquote><br class="">entsprechend angepasst:<br class=""><br class="">- Hilfsdatei erstellen<br class=""><br class="">ERROR/STOP CREATE ("hilfsdatei", SDF-E)<br class=""><br class="">- Liste mit Ids definieren<br class="">IDs =*<br class=""> DATA 140<br class=""> DATA 141<br class=""><br class="">- über die Liste loopen<br class="">LOOP id = IDs<br class=""><br class=""> SET adresse = CONCAT ("<a href="https://leibniz.uni-goettingen.de/persons/view/" class="">https://leibniz.uni-goettingen.de/persons/view/</a>", id)<br class=""> FILE/ERASE/BINARY "hilfsdatei" = REQUEST (adresse)<br class=""> ACCESS d: READ/RECORDS/UTF8 "hilfsdatei", num, port<br class=""><br class="">- Namen aus der Antwort extrahieren<br class=""> LOOP<br class="">   READ/NEXT/EXIT d<br class="">    IF (port .CT. ":hauptansetzung:") THEN<br class="">       SET name = STRINGS (port, ":\Name*:")<br class="">       SET name = STRINGS (name, ":value*</div:")<br class="">       SET name = EXTRACT (name, 8,-5)<br class="">       PRINT name<br class="">     ENDIF<br class=""> ENDLOOP<br class=""><br class=""> ENDACCESS d<br class=""><br class="">ENDLOOP<br class=""><br class="">- Hilfsdatei löschen<br class=""><br class="">ERROR/STOP DELETE ("hilfsdatei")<br class=""><br class="">Mit freundlichen Grüße<br class="">Kuno Schälkle</body></html>