Autor Thema: Teile eines Feldes suchen und ersetzten  (Gelesen 5224 mal)

Offline Daniel

  • Senior Mitglied
  • ****
  • Beiträge: 263
  • Geschlecht: Männlich
  • Schlagzeugtrommelfell
    • My personal Website
Teile eines Feldes suchen und ersetzten
« am: 04.02.04 - 15:25:21 »
Hallo Jungens!

Ich bin grad nahe der Verweiflung, weil ich nichts finde wie ich ein Feld, welches ich schon im Zugriff habe, durchsuchen kann, und wenn ein bestimmter Text vorkommt, diesen ersetzen kann.

Ich hab auch schon die Anfangsposition mit Instr(1,var(0),"@",0) gefunden. mann könnte auch alles was rechts davon steht ersetzen.

Danke für eure Hilfe!

Sg

Daniel

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:Teile eines Feldes suchen und ersetzten
« Antwort #1 am: 04.02.04 - 15:28:38 »
ich nehme mal an, du bist noch mit deiner Domain zugange.

Nimm doch @Word; @ ist dabei dein trennzeichen.

Dann machst du ein @Word(feldname;"@";1) + "@" + neueDomainString.

das sollte so funzen.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:Teile eines Feldes suchen und ersetzten
« Antwort #2 am: 04.02.04 - 15:29:41 »
oder noch einfacher mit @ReplaceSubstring
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Teile eines Feldes suchen und ersetzten
« Antwort #3 am: 04.02.04 - 15:30:44 »
So, wie das ausschaut, sucht Daniel ab was in LS.
Guckst Du hier:
http://www.atnotes.de/index.php?board=7;action=display;threadid=5310;start=0

HTH,
Bernhard

PS: Aber Achtung, das ist kein genaues Abbild der @function, sollte aber genau das tun, was Du brauchst.

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:Teile eines Feldes suchen und ersetzten
« Antwort #4 am: 04.02.04 - 15:35:15 »
auch nicht weiter dramatisch; hier ein @Word in script

Function sWord ( sourceString As String, separator As String, number As Integer ) As String
   searchString$=SourceString & separator ' add one separator to catch also the last substring
   For i% = 1 To number
      pos%=Instr(searchString$, separator)
      If pos%=0 Then Exit For
      substring$=Left(searchString$,pos%-1)
      searchString$=Mid(searchString$, pos%+1)
   Next
   If pos% > 0 Then
      sWord=substring$
   Else
      sWord=""
   End If
End Function
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Daniel

  • Senior Mitglied
  • ****
  • Beiträge: 263
  • Geschlecht: Männlich
  • Schlagzeugtrommelfell
    • My personal Website
Re:Teile eines Feldes suchen und ersetzten
« Antwort #5 am: 04.02.04 - 15:47:26 »
Puh, endlich gecheckt. Da muss man ja saftig aufpassen, ich probiers gleich aus.

Jep, das hängt noch mit der Umstellung zusammen. Ich tu mal alles schön vorbereiten um am Tage x nur noch das Knöpfchen zu drücken.
Das Adressbuch wird noch spannend, aber wird schon klappen, vor allem mit eurer Hilfe!

Danke!

Offline Daniel

  • Senior Mitglied
  • ****
  • Beiträge: 263
  • Geschlecht: Männlich
  • Schlagzeugtrommelfell
    • My personal Website
Re:Teile eines Feldes suchen und ersetzten
« Antwort #6 am: 04.02.04 - 16:11:01 »
Doch noch nicht so sonnenklar  ???.

Diese Funktion hab ich nun im Agenten, und was übergeb ich der? und wie? Ich dachte immer ein Fu aufruf muss dann so aussehen?:

*Script
Function sWord ( sourceString As String, separator As String, number As Integer ) As String
*Script

Daniel

Driri

  • Gast
Re:Teile eines Feldes suchen und ersetzten
« Antwort #7 am: 04.02.04 - 16:27:55 »
Die Function einfach in die Declarations einfügen, dann hast Du die da drin.

Der Aufruf erfolgt dann z.B. so

ergebnisstring = sWord(string1, string2, number)

Offline Daniel

  • Senior Mitglied
  • ****
  • Beiträge: 263
  • Geschlecht: Männlich
  • Schlagzeugtrommelfell
    • My personal Website
Re:Teile eines Feldes suchen und ersetzten
« Antwort #8 am: 04.02.04 - 16:39:35 »
aha  ;D
klingt eigentlich logisch. Hab mit Funktionen bisher noch nicht so viel am Hut!
Aber es wird...

Danke, Daniel

Offline Daniel

  • Senior Mitglied
  • ****
  • Beiträge: 263
  • Geschlecht: Männlich
  • Schlagzeugtrommelfell
    • My personal Website
Re:Teile eines Feldes suchen und ersetzten
« Antwort #9 am: 04.02.04 - 23:11:39 »
Hab ich das richtig Begriffen, wird an eine Funktion ein Wert aus einem Array übergeben, muss in der Funktion kein Array definiert sein?

Kann mir noch jemand sagen, wieso?

SG

Daniel

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Teile eines Feldes suchen und ersetzten
« Antwort #10 am: 04.02.04 - 23:48:39 »
Verstehe jetzt Deine Frage nicht.

Ein Wert aus einem Array ist ja ein String.
Ein Array enthält eben mehrere Strings als Liste.

Und in der Funktion ist durchaus ein String definiert.
*Script
Function sWord ( sourceString As String, separator As String, number As Integer ) As String
*Script

Hier wird von Array (Variant) nichts erwähnt.

Hab mir jetzt die Funktion nicht angesehen, aber die wird meckern, wenn Du da ein Array reinkippst anstatt ein String wie definiert.

Matthias
« Letzte Änderung: 04.02.04 - 23:49:45 von TMC »
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:Teile eines Feldes suchen und ersetzten
« Antwort #11 am: 05.02.04 - 05:18:31 »
Array ?? Daniel zeig doch mal kurz auf, wie du vorgehen willst
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Daniel

  • Senior Mitglied
  • ****
  • Beiträge: 263
  • Geschlecht: Männlich
  • Schlagzeugtrommelfell
    • My personal Website
Re:Teile eines Feldes suchen und ersetzten
« Antwort #12 am: 05.02.04 - 08:17:47 »
Hallo Eknori!

So lese ich aus

Sub Initialize
   Dim session As New notessession
   Dim db As notesdatabase
   Set db = session.currentdatabase
   Dim view As notesview
   Dim doc As notesdocument
   Set view = db.getview("Personen - Alphabetisch")
   Set doc = view.getfirstdocument
   
   Dim s As String
   Dim var(0) As String
   Do Until doc Is Nothing
      var(0) = doc.Mbr_Email
      s = var(0)
      
      'var(1) = doc.Mbr_Emailentry(0)
      'iPos = Instr(1,var(0),"@",0)
      
      Set doc = view.getnextdocument(doc)
   Loop
   Messagebox Killheizboesch(s)
End Sub


So wie es momentan noch dasteht, von der Reihenfolge her, wie der String geändert werden sollte, stimmt es noch nicht.

Bei Killheizboesch steht das hier, bei deinem Skript bin ich doch noch gescheitert an den Datentypen, hier aber auch?!?!

Function Killheizboesch ( s As String) As String
   strformula = { @ReplaceSubString("} + s + {"; "@heizboesch.at"; "@boesch.at") }
   nStr = Evaluate( strformula )
   KillUmlaute = nstr(0)
End Function

Daniel

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Teile eines Feldes suchen und ersetzten
« Antwort #13 am: 05.02.04 - 08:25:48 »
Hi,

deine Funktion heißt Killheizboesch. das Ergebnis weist du aber KillUmlaute zu.

Meiner Meinug nach muss die Funktion so aussehen:
 
Function Killheizboesch ( s As String) As String
   strformula = { @ReplaceSubString("} + s + {"; "@heizboesch.at"; "@boesch.at") }
   nStr = Evaluate( strformula )
  Killheizboesch = nstr(0)
End Function

Axel


Hab die Funktion gerade eben mal getestet und so funktioniert sie.

« Letzte Änderung: 05.02.04 - 08:28:39 von Axel »
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Daniel

  • Senior Mitglied
  • ****
  • Beiträge: 263
  • Geschlecht: Männlich
  • Schlagzeugtrommelfell
    • My personal Website
Re:Teile eines Feldes suchen und ersetzten
« Antwort #14 am: 05.02.04 - 08:29:58 »
Achherrje, stimmt.
Aber es funzt trotzdem nicht.
Ist es allgemein zu empfehlen via LS die @Formelsprache aufzurufen?

Daniel

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Teile eines Feldes suchen und ersetzten
« Antwort #15 am: 05.02.04 - 08:37:03 »
Hi,

was funktioniert nicht ? Ich hab die Funktion getestet. Bei mir läuft sie problemlos.

Zitat
Ist es allgemein zu empfehlen via LS die @Formelsprache aufzurufen?

Ich mache so was regelmässig. Warum soll man das Rad immer wieder neu erfinden. Es gibt viele Formelbefehle, für die es keine Script - Äquivalent gibt. Hier müsste man dann aufwändig eine Routine erstellen. Außerdem sind Formelbefehle teileweise sogar performanter.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:Teile eines Feldes suchen und ersetzten
« Antwort #16 am: 05.02.04 - 08:40:33 »
nur mal so am Rande:


      'iPos = Instr(1,var(0),"@",0)
     
      Set doc = view.getnextdocument(doc)
   Loop
   Messagebox Killheizboesch(s)

die msgbox gehört doch wohl IN den loop, oder ? ::)
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Teile eines Feldes suchen und ersetzten
« Antwort #17 am: 05.02.04 - 08:42:14 »
Hi,

ich hab mir deinen Code nochmal angeschaut und diesen beiden Zeilen

   Dim var(0) As String
...
   var(0) = doc.Mbr_Email

gefallen mir nicht.


Sub Initialize
   Dim session As New notessession
   Dim db As notesdatabase
   Set db = session.currentdatabase
   Dim view As notesview
   Dim doc As notesdocument
   Set view = db.getview("Personen - Alphabetisch")
   Set doc = view.getfirstdocument
   
   Dim s As String

   Do Until doc Is Nothing
      s = doc.Mbr_Email(0)
      Messagebox Killheizboesch(s)
      Set doc = view.getnextdocument(doc)
   Loop

End Sub

Versuch das Ganze mal so.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz