AGB  ·  Datenschutz  ·  Impressum  







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

Doppelte wörter aus memo Löschen

Ein Thema von RuSsAk · begonnen am 15. Okt 2009 · letzter Beitrag vom 16. Okt 2009
Antwort Antwort
Seite 1 von 2  1 2      
RuSsAk

Registriert seit: 18. Jan 2008
39 Beiträge
 
#1

Doppelte wörter aus memo Löschen

  Alt 15. Okt 2009, 22:34
hi leute
ich brauche mal wieder hilf
hätte vllt jemand für mich ein code zur seite der doppelte wörter aus memo1 löscht?

also z.b
ich
bla
ich
ich
das
ich

das "ich" soll gelöscht werden

wäre dankbar für eure hilfe


mfg,
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

Re: Doppelte wörter aus memo Löschen

  Alt 15. Okt 2009, 22:36
Hi!

Also steht in jeder Zeile nur ein Wort?


Grüße, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
RuSsAk

Registriert seit: 18. Jan 2008
39 Beiträge
 
#3

Re: Doppelte wörter aus memo Löschen

  Alt 15. Okt 2009, 22:38
Zitat von fkerber:
Hi!

Also steht in jeder Zeile nur ein Wort?


Grüße, Frederic

hi fkerber danke für deine schnelle antwort


achso sry das ich das nich angeben habe wusste nich das es so wichtig is aber ja pro zeile ein wort
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Doppelte wörter aus memo Löschen

  Alt 15. Okt 2009, 22:42
Hallo,

such mal nach POS, CompareStr, CompareText etc.

Memo.Lines


Vieleicht hilft dir das ja.

MFG

Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Doppelte wörter aus memo Löschen

  Alt 15. Okt 2009, 22:45
Achso,

und schau mal hier...

Doppelte Zeilen in Memo löschen

MFG

jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
RuSsAk

Registriert seit: 18. Jan 2008
39 Beiträge
 
#6

Re: Doppelte wörter aus memo Löschen

  Alt 15. Okt 2009, 22:46
Zitat von Jens Hartmann:
Hallo,

such mal nach POS, CompareStr, CompareText etc.

Memo.Lines


Vieleicht hilft dir das ja.

MFG

Jens

ich habe hier was gefunden könntest du mir vllt helfen das so zu machen das es aufs memo zugreift?
`
Delphi-Quellcode:
function CompareText(const S1, S2: string): integer;
var s1,s2 : string;
        i : integer;

s1:='Delphi';
s2:='Programming';
i:= CompareText(s1,s2);
//i<0 because D is less than P in ascii order.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Doppelte wörter aus memo Löschen

  Alt 15. Okt 2009, 23:02
In #5 steht doch schon eine fertige Lösung.

Delphi-Quellcode:
procedure KillDuplicates(s: TStrings);
var
  iLow, iHigh: integer;
begin
  for iLow := 0 to s.Count - 2 do
    for iHigh := Pred(s.Count) downto Succ(iLow) do
      if s[iLow] = s[iHigh] then
        s.Delete(iHigh);
end;

procedure TMainForm.Button1Click(Sender: TObject);
begin
  Memo1.Lines.BeginUpdate;
  KillDuplicates(Memo1.Lines);
  Memo1.Lines.EndUpdate;
end;
MFG

Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
RuSsAk

Registriert seit: 18. Jan 2008
39 Beiträge
 
#8

Re: Doppelte wörter aus memo Löschen

  Alt 15. Okt 2009, 23:18
Zitat von Jens Hartmann:
In #5 steht doch schon eine fertige Lösung.

Delphi-Quellcode:
procedure KillDuplicates(s: TStrings);
var
  iLow, iHigh: integer;
begin
  for iLow := 0 to s.Count - 2 do
    for iHigh := Pred(s.Count) downto Succ(iLow) do
      if s[iLow] = s[iHigh] then
        s.Delete(iHigh);
end;

procedure TMainForm.Button1Click(Sender: TObject);
begin
  Memo1.Lines.BeginUpdate;
  KillDuplicates(Memo1.Lines);
  Memo1.Lines.EndUpdate;
end;
MFG

Jens
ok funktioniert alles top vielen dank


schön abend noch
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#9

Re: Doppelte wörter aus memo Löschen

  Alt 15. Okt 2009, 23:33
Hallo,

die Möglichkeit finde ich auch immer schön:
Delphi-Quellcode:
for z := Pred(Memo.Lines.Count) downto 1 do
  if Memo.Lines.IndexOf(Memo.Lines[z]) <> z then
    Memo.Lines.Delete(z);
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.993 Beiträge
 
Delphi 12 Athens
 
#10

Re: Doppelte wörter aus memo Löschen

  Alt 15. Okt 2009, 23:39
ich würde das .BeginUpdate und .EndUpdate noch mit in KillDuplicates reinverschieben
und es könnte nicht schaden, wenn man dieses dann auch noch mit Try-Finally absichert.


und warum gibt es nicht sowas wie Self für das With-Do?
dann könnte man es ohne Variabe und inplace gleich so machen
Delphi-Quellcode:
with TStringList.Create do
  try
    Duplicates := dupIgnore;
    Assign(Memo1.Lines);
    Memo1.Lines.Assign({self});
  finally
    Free;
  end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 03:33 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