AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Strings trennen

Ein Thema von capo · begonnen am 29. Nov 2006 · letzter Beitrag vom 30. Nov 2006
Antwort Antwort
Seite 1 von 2  1 2      
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#1

Strings trennen

  Alt 29. Nov 2006, 11:44
Hallo,
ich habe folgende Zeichenfolge in einem Memo stehen:
0141-1234561 -9239872
usw. ca 8000 verschiedene Zeilen

Wie kann ich den Mittelteil herauslöschen das es so aussieht.
0141-9239872
gruss vom capo
Hotte
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Strings trennen

  Alt 29. Nov 2006, 11:46
Da kannst Du mit copy/delete und pos arbeiten.
Die Hilfe und viele Beispiele im Forum sollten
Dir da weiterhelfen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Strings trennen

  Alt 29. Nov 2006, 11:52
Hallo Klaus,
danke für deine Antwort, hab auch das hier gefunden:
http://www.delphipraxis.net/internal...939&highlight=
kann ich das auch dafür nehmen?
gruss capo
Hotte
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

Re: Strings trennen

  Alt 29. Nov 2006, 11:53
hab das grad mal so in paar min hingekrizelt...
habs aber net getestet...
vielleicht gehts ja so (oder so ähnlich)

Delphi-Quellcode:
procedure TMain_Form.Strindurchsuchen ();

var
sRow, sRowNew : String;
i, ilen, ipos : Integer;

begin

  ilen := Length(sRow);
  
  For i := 1 To iLen Do
  Begin
    If sRow[i] = '-Then
    Begin
      sRowNew := Copy(sRow, 1, (iLen - i)
      sRowNew := sRowNew + Copy(sRow, i, iLen);
    End;
  End;

End;
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
oldmax

Registriert seit: 27. Apr 2006
Ort: Gieboldehausen
167 Beiträge
 
#5

Re: Strings trennen

  Alt 29. Nov 2006, 12:13
Hi
Ein Vorschlag, der vielleicht etwas ungeschickt aussieht, dafür dir aber für solche Fälle immer eine Lösung bildet.

Delphi-Quellcode:
Funktion TMyForm1.GetTextElement(ElementNr: Integer; MeinTrennzeichen, MeinText: String): String;
Var RefStr : String;
    Ausg : String;
    ende : Integer;
    i : Integer;
begin
  Ausg:='';
  For i:= 1 To ElementNr do
  begin
    Ende:=Pos(MeinTrennzeichen,meinText);
    if Ende>0 then
    begin
      if i=ElementNr then Ausg:=Copy(RefStr,1,Ende-1)
      else RefStr:=Copy(RefStr,Ende+1,Length(RefStr)-Ende);
    end else if i=ElementNr then Ausg:=RefStr;
  end;
  Result:=Ausg;
end;
der Aufruf erfolgt dann für deinen Zweck

NeuStringwert:=GetTextElement(1,'-',AltString)+'-'+GetTextElement(3,'-',AltString); oder auch, so wirds vielleicht deutlich

NeuStringwert:=GetTextElement(1,'-','123-4567-890')+'-'+GetTextElement(3,'-','123-4567-890'); sollte ergeben '123-890'
Viel Spass
Gruß oldmax
Noch ist mein Rechner mir zu Diensten.... ansonsten habe ich die Macht ihn zu vernichten !
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#6

Re: Strings trennen

  Alt 29. Nov 2006, 13:08
Um noch n Tutorial hinterher zu werfen: http://r2c2.weingut-rehn.de/content3...mit_Delphi.htm

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Ines

Registriert seit: 22. Aug 2006
Ort: Augsburg
96 Beiträge
 
Delphi 2009 Enterprise
 
#7

Re: Strings trennen

  Alt 29. Nov 2006, 13:16
Hallo capo,

hat Deine Zeichenfolge immer diesen Aufbau?
Dann könntest Du folgendes ausprobieren:
Delphi-Quellcode:
var
  NewString : string;
  i : Integer;
begin
  for i := 0 to Memo1.Lines.Count - 1 do
  begin
    NewString := LeftStr(Memo1.Lines[i],4) + RightStr(Memo1.Lines[i],7);
    Memo1.Lines[i] := NewString;
  end;
end;
Funktioniert aber nur, denn die Zeichenfolge immer gleich lang und die Trennzeichen an der gleichen Position sind.

Grüße
Ines
Ines
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Strings trennen

  Alt 29. Nov 2006, 16:05
Danke an alle.

Hallo oldmax
ich krieg immer nur ein - zu sehen, bestimmt mache ich was falsch.


Hallo r2c2
danke für die Klasse-Seite muss ich mir alles noch genau ansehen.

Hallo Ines
Leider sind die unterschiedlich lang.
Oder was meintest du mit immer gleichem Aufbau?
Was ist LeftStr und RightStr wie muss ich die definieren?


gruss capo
Hotte
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Strings trennen

  Alt 29. Nov 2006, 16:41
Grüße,


ne du machst keinen Fehler, in der Funktion wurde lediglich eine Kleinigkeit vergessen. Hab ich mal schnell korrigiert:

Delphi-Quellcode:
function TForm1.GetTextElement(ElementNo: Integer; Seperator,
  Text: String): String;
var
  elementEnd, i: Integer;
begin
  for i := 1 to ElementNo do
  begin
    elementEnd := pos(Seperator, Text);
    if elementEnd > 0 then
    begin
      if i = ElementNo then
        Result := Copy(Text, 1, elementEnd - 1)
      else
        Text := Copy(Text, elementEnd + 1, Length(Text) - elementEnd);
    end
    else if i = ElementNo then
      Result := Text;
  end;
end;
EDIT: Man kann natürlcih auch auf RefStr komplett verzichten und dafür direkt auf MeinText zugreifen

EDIT2: Funktion klein gemacht und COde-formatierung vorgenommen
Ansgar
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Strings trennen

  Alt 29. Nov 2006, 19:44
Hallo angos
wie muss ich das mit dem memo machen?

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
  NeuStringwert, AltString: string;
  i: Integer;
begin
  for i := 0 to Memo1.Lines.Count - 1 do
    NeuStringwert := GetTextElement(1, '-', '???') + '-' + GetTextElement(3, '-', '???');
  Showmessage(NeuStringwert);
end;
Irgendwie verstehe ich nicht wo ich dann die Zahlen angeben soll.
gruss capo
Hotte
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz