Lines w ComboBox

0

Mam takie pytanie:

Mam dużo lini w ComboBox (wczytanych z pliku). Jak zrobić by teraz mi je posortował i usunął ort! się?

Sorry z sortowanie to oczywiscie wiem jak zrobić. Chodzi mi tylko jak usuwać ort! sie linie.

A przy okazji drugie pytanie: Jak można usunąć np. 5 pierwszyszch znaków z danej linii (albo ze wszystkich linii) w ComoBox?

tam powinno być jak ununąć powtarzające się linie (pisze to bo zauważyłęm, że wyskoczył "ort!" i nie wiadomo o co mi we wpisie chodzi).

0
var
i,j:integer;
s:string;
begin
 for j:=0 to combobox1.Items.Count -1 do
 begin
  s:=combobox1.Items[j];
  for i:=j+1 to combobox1.Items.Count -1 do
  begin
   if combobox1.Items[i]=s then
   combobox1.Items.Delete(i);
  end;
 end;
end;
var
i:integer;

begin
for i:=0 to combobox1.Items.Count-1 do
 begin
  combobox1.Items[i]:=copy(combobox1.Items[i],6,length(combobox1.Items[i])-5);
 end;
end;
0

Więc tak:

Kod 2) działa prawidłowo natomiast niestety ale kod 1) nie działa jak trzeba...

0

Nie wiem dlaczego, bo u mnie działa, a co robi źle??

0

Sorry działa jednak dobrze. Z mojej winy nie działało ale już poprawiłem...

Ale mam kolejne pytanie:

Mam linie np. w memo1, w której mam imona i nazwiska oddzielone przecinkami np: Jan Kowalski, Piotr Michałowski, Maciek Długi

Jak teraz zrobić by z tej linii dodać te nazwiska to ComboBox1 ale oddzielnie. Czyli, żeby jedno było pod drugm (jako oddzielne Itemy).

0

np. tak:

var
i:integer;
s:string;
znak,znak2:char;
begin
znak:=',';
s:='';
  for i:=1 to length(memo1.Text) do
  begin
  znak2:=memo1.text[i];
   if znak=znak2 then
   begin
    combobox1.Items.Add(s);
    s:='';
   end
   else
    s:=s+znak2;
   if i=length(memo1.Text) then
    combobox1.Items.Add(s);
  end;

Tylko musisz się jeszcze pozbywać znaków końca linii i spacji na początku na początku itemów (jeśli jest), ale mam nadzieję że sam sobie z tym poradzisz.

A jak nie wiesz jak sobie z tym poradzić to masz kodzik:

  for i:=0 to combobox1.Items.Count -1 do
   if pos(chr(13),combobox1.Items[i])>0 then
   combobox1.Items[i]:=copy(combobox1.Items[i],0,pos(chr(13),combobox1.Items[i])-1);
for i:=0 to combobox1.Items.Count -1 do
   if copy(combobox1.Items[i],0,1)=' ' then
   combobox1.Items[i]:=copy(combobox1.Items[i],2,length(combobox1.Items[i]));

1 użytkowników online, w tym zalogowanych: 0, gości: 1