Avatar billede Slettet bruger
03. oktober 2003 - 23:53 Der er 11 kommentarer og
1 løsning

Mærkelige tegn?

Hej... Har siddet og rodet med dette problem i ret lang tid nu...

Jeg er ved at lave en irc klient (igen) med Indy's komponent. Når jeg prøver at få en liste over folk, som er i en kanal, og prøver at putte det over i en listbox, bliver det sådan i listboxen:

Bruger1[tegn][tegn]Bruger2[tegn][tegn]

Har lavet et screenshot: http://rnd.users.whitehat.dk/tegn.jpg
[tegn] er et lille firkantet tegn.

Men når jeg putter det i en memo, bliver det sådan:

Bruger1
Bruger2


Så jeg vil gerne vide hvordan jeg kan få lavet de tegn om!
Avatar billede arne_v Ekspert
03. oktober 2003 - 23:54 #1
Det er vel <CR><LF> altså linieskift.
Avatar billede Slettet bruger
03. oktober 2003 - 23:56 #2
Og hvordan kan man sortere linierne?
Avatar billede Slettet bruger
03. oktober 2003 - 23:57 #3
Arne: hvordan kan man så lave 'rigtige' linier istedetfor?
Avatar billede arne_v Ekspert
03. oktober 2003 - 23:58 #4
Du skal vel have splittet den streng op i separate strenge - en
med hver linie.
Avatar billede Slettet bruger
04. oktober 2003 - 00:00 #5
Kan jeg få noget kode...?
Avatar billede arne_v Ekspert
04. oktober 2003 - 00:15 #6
Eksempel på split:

program linesplit;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  i,ix : integer;
  s : string;
  ss : array [1..3] of string;

begin
  s := 'abc' + chr(13) + chr(10) + 'def' + chr(13) + chr(10) + 'ghi';
  writeln(s);
  ix := 1;
  for i := 1 to length(s) do begin
    if s[i] = chr(13) then begin
        (* nothing *)
    end else if s[i] = chr(10) then begin
      ix := ix + 1;
    end else begin
      ss[ix] := ss[ix] + s[i];
    end;
  end;
  for i := 1 to ix do begin
    writeln(i,' : ',ss[i]);
  end;
end.
Avatar billede doc404 Novice
04. oktober 2003 - 01:02 #7
Har du prøvet noget så simpelt som:

ListBox.Items.Text := IRCBrugere;

Hvor IRCBrugere er den string, der indeholder din bruger list?
Avatar billede janbb Juniormester
04. oktober 2003 - 03:49 #8
doc404: er det ikke kun comboboxe ?
Avatar billede doc404 Novice
04. oktober 2003 - 10:42 #9
nej. Ovenstående virker også på listboxe og alt andet hvor det er en TStrings ting...
Avatar billede koden12 Nybegynder
04. oktober 2003 - 10:45 #10
Det problem får jeg også så jeg følger med.
VH
Koden12
Avatar billede dkn Nybegynder
04. oktober 2003 - 14:16 #11
Ved ikke lige hvilken char irc sender til at dele commands op med, men det burde være crlf, og som doc404 siger skulle det jo så virke sådan.

Men ellers når du modtager må du finde ud af hvilken char kode de tegn har som deler usernames op.
Når du kender dem kan du bare bruge stringreplace


ListBox.Items.Text := stringreplace(ModtagetTekst, 'Som skal erstattes', #13#10, [RfReplaceAll]);


for at finde ud af hvad det er for en char kan du bruge ord:

Var
i:integer;
begin
for i := 1 to length(ModtagetTekst) do
  showmessage(inttostr(ord(ModtagetTekst[I])));
end;

Se hvad der går igen...(ikke testet)
Avatar billede Slettet bruger
04. oktober 2003 - 15:21 #12
doc404's svar,

ListBox.Items.Text := IRCBrugere;

..virker! :)


Så nu ser min kode sådan ud:

procedure TForm2.Button2Click(Sender: TObject);
begin
ListBox1.Clear;
ListBox1.Items.Text := IdIRC1.Channels.Items[0].Names.Text;
end;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester