Autor Beitrag
delphist
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 64

WIN XP, 98, 95; SUSE LINUX 8.1, 6.1, 6.0

BeitragVerfasst: Sa 28.12.02 22:09 
Such eine String$-Split-Funktion für Delphi!!!
Ein Beispiel:
String$ := 'Otto:Kasulke:Unter den Linden 1000000:99999:Berlin'
jetzt möchte ich den String in Einzelteil vor dem Doppelpunkt und nach dem Doppelpunkt zerlegen...
Kann mir jemand vielleicht jemand folgende Funktion für VB übersetzen:
ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
:::VB CODE:::

Autor:   Maximilian Marx Homepage:   http://www.mmmw.my100megs.com/ 
Beschreibung 
Mit den Funktionen Left$(...) und Mid$(...) lassen sich Teilstrings aus einem Gesamtstring ermitteln. Mit der nachfolgenden Routine möchten wir Ihnen eine Universalroutine vorstellen, welche einen String auf ein bestimmtes Trennzeichen prüft und entweder den linken Teilstring oder den rechten Teilstring zurückgibt. Ist im Gesamtstring das Trennzeichen nicht enthalten, wird ein Leerstring zurückgegeben.

Public Function SplitString(ByVal strText As String, _
  ByVal strChars As String, ByVal Mode As Integer) As String
  
  'String in zwei Teile splitten
  'und entweder linken Teil (Mode = 1)
  'oder rechten Teil (Mode = 2) zurückgeben
  
  Dim sPos As Long
  
  sPos = InStr(strText, strChars)
  If sPos > 0 Then
    'strChars ist in strText enthalten
    If Mode = 1 Then
      'linke Teilstring zurückgeben
      SplitString = Left$(strText, sPos - 1)
    Else
      'rechten Teilstring zurückgeben
      SplitString = Mid$(strText, sPos + Len(strChars))
    End If
  Else
    'strChars ist in strText nicht enthalten
    SplitString = ""
  End If
End Function
Nachfolgend ein paar Beispiele:

strText = "Willkommen im vb@rchiv"

'Ergebnis: Willkommen 
strLeft = SplitString(strText, "im", 1)

'Ergebnis:  vb@rchiv
strRight = SplitString(strText, "im", 2)

'Ergebnis: W
strLeft = SplitString(strText, "i", 1)

'Ergebnis: llkommen im vb@rchiv
strRight = SplitString(strText, "i", 2)


Das wäre super!!!
mfg delphist[/code][/url]
Michael Stenzel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 133


D3 Prof, D7 PE
BeitragVerfasst: So 29.12.02 04:39 
Hallo hier der Code
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
function SplitString(strText, strChar : string; Mode: integer):string;
var sPos : integer;

begin
     Result := '';
     sPos := Pos(strChar,strText);
     if sPos > 0 then begin
        if Mode = 1 then begin
           Delete(strText,sPos,Length(strText));
           Result := strText;
        end else begin
           Delete(strText,1,sPos + Length(strChar));
           Result := strText;
        end
     end;
end;


Viel Spaß damit
Michael.
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mo 30.12.02 11:23 
Die Funktionen WordCount sowie ExtractWord in der Unit JvStrUtils (JCL-Package, Freeware) erledigen das:

ausblenden Quelltext
1:
2:
for i:=1 to WordCount(MyString,[':']) do
  Memo1.Lines.Add(ExtractWord(i,MyString,[':']));


Cu, :)
Udontknow