Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: TomLudwig am 21.09.06 - 11:40:56
-
Hallo zusammen,
ich bin leider nicht fündig geworden und verzweifle langsam...
Ich möchte in einem String per LS die Anführungszeichen (") ersetzten. Am besten gegen zwei einfache Anführungszeichen ( ' ' ). Da der String im HTML Quellcode verwendet werden muss...
Mein letzter Versuch war:
strFormula = {@ReplaceSubstring("} + v + {"; """; """")}
Danke für eure Hilfe.
-
Hi,
den Weg würde ich garnicht gehen. Ich empfehle dir das komplett ohne EVALUATE auszuführen, weil...
... die Variable v [ich gehe stark davon aus] Anführungszeichen enthält, die dadurch eine falsche Formel ergeben und diese Formel nicht ausgeführt werden kann:
Angenommen:
v = Heute ist schönes "Wetter"
Die Formel sieht zur Laufzeit so aus:
@ReplaceSubstring("Heute ist schönes "Wetter""; """; """")
Kriegst in diesem Fall ein Formula Error weil die Formel falsch ist und nicht ausgeführt werden kann.
Lösung:
Suche mal in Google nach "Script equivalent replacesubstring". Die Funktion bindest du am besten in deine Funktionsbibliothek (wenn vorhanden; ansonten direkt in deinen agenten). Dann kannst Anführungszeichen ersetzen.
-
Moritz
-
so:
@ReplaceSubstring("Hier ein String";"\"";"'")
-
Oder etwas altmodischer mit Ustring und Mid und Instr
-
oder mit dem guten alten Split Join
meinstring = join(split(meinstring,{"}),{'})
-
Vielen Vielen Dank.
Die Variante von umi gefällt mir am besten.
Einfach, Klar und Wirkungsvoll!
-
Was ist denn an einem direkten Replace auszusetzen? Ist meiner Meinung nach einfacher und klarer als zwei verschachtelte Funktionen :o
Moritz
-
Was ist denn an einem direkten Replace auszusetzen? Ist meiner Meinung nach einfacher und klarer als zwei verschachtelte Funktionen :o
Moritz
Das Problem ist, dass viele Entwickler die Formelsprache nicht oder nicht mehr zu schätzen wissen.
-
Wat?? Es war LS verlangt, nicht Formelsprache.
-
hallo,
habe das problem, dass ich in einer ansicht eine spalte habe, in der ein datum sortiert angezeigt werden soll.
das datum ist aber mal richtig (12.02.2007) und mal falsch geschrieben ("12.02.2007).
die hinweise aus dieser frage habe ich versucht umzusetzen.
leider funktioniert das nicht.
was muss ich machen, um die lästigen anführungstriche zu entfernen?
-
Kannst Du das etwas genauer beschreiben (unter Beigabe von Grossbuchstaben, damit es sich leichter liest)?
Wie kommt denn überhaupt ein String in ein Datumsfeld? Dann könnte statt "12.02.2007 dort ja auch "Tante Helga" stehen ... Wurden die Dokumente aller mit einer Maske erstellt?
Bernhard
-
der inhalt in dem datumsfeld kommt von einem txt import.
dort steht tatsächlich (leider) das datum mal ohne und mal in " .
kann man diese entfernen oder diese in der ansicht so darstellen, dass sie die dortierung nicht stören?
vielen dnak
harald
-
Du kannst einfach in der entsprechenden Ansichtenspalte in der Spaltenformel @ToTime(Feldname) eintragen.
Allerdings würde ich dir nach dem Import empfehlen mittels Agent die Datumsfelder zu bereinigen, denn ja nach dem können die falschen Datumswerte unvorhersehbare Seiteneffekte haben.
Axel
-
hallo axel,
das ist genau, was ich gesucht habe, danke !!!
es funktioniert klasse.
den import mache ich über eine *.col datei.
da kommen auch datensätze rein, die ich nicht benötige.
anschlussfrage:
hast du ein script, was diese entweder per agent nachträglich aus der datenbank löscht oder
direkt beim import erst gar nicht importiert?
die nicht gewünschten datensätze haben ein feld, in dem ein name steht.
ich habe eine liste der namen, die nicht importiert oder nachträglich gelöscht werden sollen.
im web habe ich das schon vergeblich gesucht.
danke
harald
-
anschlussfrage:
hast du ein script, was diese entweder per agent nachträglich aus der datenbank löscht oder
direkt beim import erst gar nicht importiert?
Nein. Du wirst hier auch keine fertigen Lösungen finden, sondern nur Anregungen und Hilfe wenn's klemmt.
Als grobe Anregung für einen Agenten der die Dokumente nachträglich rauslöscht könnte ich mir folgendes vorstellen. Du baust dir eine Ansicht, die nach diesem Feld sortiert ist. Im Agent hinterlegst du eine Liste mit den Namen, die gelöscht werden sollen (noch besser ist es das Ganze konfigurierbar zu machen). Diese Liste arbeitest du dann der Reihe nach ab und suchst mit NotesView.GetDocumentByKey dir das Dokument innerhalb der Ansicht. Damit hast du das Dokument im Zugriff und kannst es über NotesDocument.Remove löschen.
Die bessere Alternative ist natürlich Dokumente, die du nicht haben willst auch gar nicht erst zu importieren. Dann musst du den Import allerding komplett selbst programmieren. Ohne genauere Infos kann man nicht abschätzen wie aufwändig so was wird.
Axel
-
Danke für die Infos; das übersteigt aber meine Kenntnisse hier.