Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Anmeldungen zum Forentreffen 2018 sind auf der Anmeldeseite möglich
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

GetWordCount/GetWordNum => Xbase

Auf dem Weg von Clipper, FoxPro u.ä. nach Xbase++

Moderator: Moderatoren

Antworten
Benutzeravatar
HaPe
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 247
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz

GetWordCount/GetWordNum => Xbase

Beitrag von HaPe » Mo, 19. Dez 2016 21:04

Hallo Zusammen !

In VFP gibt es für Zeichenketten die Funktionen GetWordCount und GetWordNum für den Zugriff auf Zeichenketten die mittels eine Separators getrennt sind.
GetWordCount(cString[, cDelimiters]): Zählt die Anzahl der Wörter in einer Zeichenfolge.
GetWordNum(cString, nIndex[, cDelimiters]): Gibt ein angegebenes Wort aus einer Zeichenfolge zurück.
Dies beiden Funktionen setze ich exzessiv für Messdaten in einer Textdatei ein. Die Daten (Feldnamen, Einheiten, Messwerte) sind dabei mittels TAB getrennt.
Mit cFieldNames als erste Zeile aus der Messwertdatei bestimme ich mit
GetWordCount( cFieldNames, CHR( 9 ) )
die Anzahl der Felder und mit
GetWordNum( cFieldNames, nFieldNo, CHR( 9 ) )
bestimme ich den jeweiligen Feldname.

Welche Funktion gibt es dafür in Xbase?
--
Hans-Peter

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10657
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: GetWordCount/GetWordNum => Xbase

Beitrag von AUGE_OHR » Mo, 19. Dez 2016 23:30

HaPe hat geschrieben:GetWordCount(cString[, cDelimiters]): Zählt die Anzahl der Wörter in einer Zeichenfolge.
GetWordNum(cString, nIndex[, cDelimiters]): Gibt ein angegebenes Wort aus einer Zeichenfolge zurück.
beide Functionen gibt es "so" nicht aber du kann es dir selbst zusammenbauen

Code: Alles auswählen

FUNCTION GetWordCount( cText, cDelimiters )
LOCAL nPos := 1
LOCAL nIst := 0
LOCAL aRet := {}
DEFAULT cDelimiters TO " "

   DO WHILE .T.
      nPos := AT( cDelimiters, cText )
      IF nPos > 0
         nIst ++
         AADD( aRet, SUBSTR( cText, 1, ( nPos - 1 ) ) )
         cText := SUBSTR( cText, ( nPos + 1 ), LEN( cText ) - nPos )
      ELSE
         AADD( aRet, cText )
         EXIT
      ENDIF
   ENDDO
RETURN aRet
wenn du nur die Anzahl haben will reicht "nIst"
GetWordNum(cString, nIndex[, cDelimiters])
auch dafür kann du den Code verwenden da er ja den String "zerlegt" und die einzelnen Worte in ein Array speichert und der Index wäre das Array Element.
gruss by OHR
Jimmy

Benutzeravatar
HaPe
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 247
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz

Re: GetWordCount/GetWordNum => Xbase

Beitrag von HaPe » Di, 20. Dez 2016 7:03

Hallo Jimmy !
beide Functionen gibt es "so" nicht aber du kann es dir selbst zusammenbauen

Code: Alles auswählen

FUNCTION GetWordCount( cText, cDelimiters )
Vielen Dank für diese Info und deinen Code :)
--
Hans-Peter

Antworten