Domino 9 und frühere Versionen > Entwicklung
HTML per LotusScript anhand der URL in ein Feld als SourceText einlesen
jofa:
Hi ata,
geht leider nicht :-(
Gruss Jofa
PS Dennoch vielen Dank ... muss mal weiter versuchen ...
ata:
... es gibt Tools, mit denen man Pages aus dem Web sagen kann, vielleicht findest du ja was - WebCopier zum Beispiel - denn wenn du es auf der Platte hast funktioniert meine Funktion ja...
ata
Rob Green:
evtl. interessiert Euch das:
http://www-10.lotus.com/ldd/46dom.nsf/55c38d716d632d9b8525689b005ba1c0/d411094f7b11f873852566b300714ccb?OpenDocument
Der Trick ist über die Web.nsf bzw. die perweb.nsf zu gehen und dort einzugeben, daß alle HTML Seiten incl. Source Code in einem eigenen Feld gespeichert werden. Der Rest des Auslesens ist dann easy.
unten seht ihr als Anhang einen Screenie von der Einstellung in meiner perweb.nsf
jofa:
Hi @all,
also eines habe ich benerkt, dies scheint keine triviale rage gewesen zu sein, aber ich habe dazu zwei Möglichkeiten gefunden:
1. Mit LotsScript und wget für win32 (http://space.tin.it/computer/hherold/ <- aktualisiert) in einer Maske mit einem Feld A als TextList:
---snip---
Sub Click(Source As Button)
Dim pid As Integer
pid = Shell("wget.exe -F http://www.atnotes.de -Oy:\temp.htm",6)
Dim w As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim test As Variant
test = ImportFromFile( "y:\temp.htm" )
Set uidoc = w.CurrentDocument
Call uidoc.GotoField( "A" )
Call uidoc.Inserttext(test)
End Sub
Function ImportFromFile( sFile As String ) As Variant
' Grossen Dank an ata (http://www.anton-tauscher.de/LotusScript/startdyn.htm)
' habe nur eine Zeile (Fett markiert) ändern müssen ;D
REM Eine Import-Funktion für die Praxis...
' # ... Rückgabewert = Array
' On Error Goto ErrHandle
ImportFromFile = ""
If sFile <> "" Then
Dim sRow As String
Dim sTxt As String
Dim fileNum As Integer
Dim counter As Integer
fileNum = Freefile()
counter = -1
sRow = ""
' # ... die Datei zum Lesen öffnen...
Open sFile For Input As fileNum
Do While Not Eof( fileNum )
Line Input #fileNum, sTxt
counter = counter + 1
' Redim Preserve sRow( 0 To counter )
' sRow( counter ) = sTxt
sRow = sRow + Chr(13) + Chr(10) + sTxt
Loop
Close fileNum' # ... schließen
' # ... Array zurückgeben...
ImportFromFile = sRow
Print "Der Import ist abgeschlossen"
End If
Exit Function
ErrHandle:
Close fileNum
Print "Abbruch - es konnte keine Datei geöffnet werden"
Exit Function
End Function
---snap---
2. Mit einem JavaAgenten:
---snip---
import lotus.domino.*;
import java.net.*;
import java.io.*;
import java.util.Vector;
public class GrabHTML extends AgentBase {
public void NotesMain()
{
try
{
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
Database db = agentContext.getCurrentDatabase();
DocumentCollection dc = db.search("Form = \"RawHTML\"");
if (dc.getCount() == 1)
{
Document doc = dc.getFirstDocument();
URL url = new URL("http://www.atnotes.de");
URLConnection conn = url.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
StringBuffer buffer = new StringBuffer();
int nextChar = 0;
// String newLine=System.getProperty("line.separator");
Vector stringMultiple = new Vector();
while((nextChar = bis.read()) != -1)
{
if (nextChar == 10)
{
stringMultiple.addElement(buffer.toString());
buffer = new StringBuffer(buffer.capacity());
}
else
if (nextChar != 13)
buffer.append((char)nextChar);
}
stringMultiple.addElement(buffer.toString());
doc.replaceItemValue("HTML", stringMultiple);
doc.replaceItemValue("Subject", "Raw HTML");
is.close();
bis.close();
doc.save();
}
}
catch(MalformedURLException mal)
{
mal.printStackTrace();
}
catch(IOException ioe)
{
ioe.printStackTrace();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
---snap---
Dazu wird noch eine Form benötigt namens "RawHTML" und den Felder:
- Form als Text
- Subject als Text
- HTML als TextList mit NewLine als Trennzeichen
Viel Spass und thx an ata und Rob :-)
Gruss JoFa
PS: Ich habe mich für Variante zwo entschieden ;D ;D ;D
ata:
@JoFa
... das hat mich natürlich neugierig gemacht, und ich wollte es ausprobieren. Die Windows-Version bekomme ich leider nicht zum Laufen, ich erhalte bei wget die Fehlermeldung "File does not exist"
:(
ata
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln