Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Substring Problem (https://www.delphipraxis.net/138967-substring-problem.html)

PhilmacFLy 22. Aug 2009 15:42

Re: Substring Problem
 
Delphi-Quellcode:
procedure Tform2.GenerateNicks(Linend: Integer);
var
LineEnd, Nickoffset, Channeloffset: Integer;
Nicks: string;
begin
ChannelOffset := Pos('#', Memo2.Lines.Text);
NickOffset := PosEx(' ', Memo2.Lines.Text, ChannelOffset) + 1;
Nicks := Copy(Memo2.Lines.Text, NickOffset, LineEnd - NickOffset);
end;

procedure Tform2.list;
var
str: String;
i: Integer;
begin
for i := 0 to Memo2.Lines.Count - 1 do
  if Copy(Memo2.Lines[i]) = '353' then //Hier kommt der Fehler
    GenerateNicks(Memo2.Lines[i]);
end;
[DCC Fehler] tool_chat.pas(74): E2010 Inkompatible Typen: 'Integer' und 'string'

DeddyH 22. Aug 2009 16:03

Re: Substring Problem
 
Wie wäre es denn, wenn Du mal in die Hilfe zu Copy() schaust, dann siehst Du selbst, was da falsch ist :?

NickelM 22. Aug 2009 16:42

Re: Substring Problem
 
So hab mal mich um dein Problem gekümmert :coder: und habs hinbekommen xD
Delphi-Quellcode:
procedure TForm1.GenerateNicks(StrLine: String);
var
LineEnd, Nickoffset1,Nickoffset, Channeloffset: Integer;
Nicks: string;
begin
ChannelOffset := Pos(':', StrLine)+1;
NickOffset := PosEx(' ', StrLine, ChannelOffset);
Nicks := Copy(StrLine, ChannelOffset, Length(StrLine)- ChannelOffset);
//Wenn du die einzelnen Namen haben willst
Nicks := StringReplace(Nicks,' ',#$D#$A,[rfReplaceAll]);
ListBox1.Items.Text := Nicks;
end;

procedure TForm1.Button1Click(Sender: TObject);
var Pos353,PosLineEnd : Integer;
begin
Pos353 := Pos('353', Memo1.Lines.Text);
PosLineEnd := PosEx(#$D#$A,Memo1.Lines.Text,Pos353)-1;
GenerateNicks(Copy(Memo1.Lines.Text,Pos353,PosLineEnd-Pos353));
end;

end.
Ich hoffe ich konnte dir helfen. Habs sogar getestet bei mir funkts :mrgreen: :mrgreen: :zwinker:

xZise 22. Aug 2009 17:17

Re: Substring Problem
 
Zitat:

Zitat von PhilmacFLy
Delphi-Quellcode:
procedure Tform2.GenerateNicks(Linend: Integer);
var
LineEnd, Nickoffset, Channeloffset: Integer;
Nicks: string;
begin
ChannelOffset := Pos('#', Memo2.Lines.Text);
NickOffset := PosEx(' ', Memo2.Lines.Text, ChannelOffset) + 1;
Nicks := Copy(Memo2.Lines.Text, NickOffset, LineEnd - NickOffset);
end;

procedure Tform2.list;
var
str: String;
i: Integer;
begin
for i := 0 to Memo2.Lines.Count - 1 do
  if Copy(Memo2.Lines[i]) = '353' then //Hier kommt der Fehler
    GenerateNicks(Memo2.Lines[i]);
end;
[DCC Fehler] tool_chat.pas(74): E2010 Inkompatible Typen: 'Integer' und 'string'

Naja Memo2.Lines[i] ist ein String (und zwar der der Zeile). GenerateNicks selber will aber einen Integer, was ich aber nicht so vorgesehen habe. GenerateNicks sollte einen String bekommen! Und zwar diesen: "353 Testnick = #Königlich-Preußisches-Inf.Reg :Testnick ~PhilmacFLy"
Das heißt du brauchst "LineEnd" nicht, weil das ja dann Length(<Zeilentext>) ist.

MfG
xZise

PhilmacFLy 22. Aug 2009 17:46

Re: Substring Problem
 
Zitat:

Zitat von NickelM
So hab mal mich um dein Problem gekümmert :coder: und habs hinbekommen xD
Delphi-Quellcode:
procedure TForm1.GenerateNicks(StrLine: String);
var
LineEnd, Nickoffset1,Nickoffset, Channeloffset: Integer;
Nicks: string;
begin
ChannelOffset := Pos(':', StrLine)+1;
NickOffset := PosEx(' ', StrLine, ChannelOffset);
Nicks := Copy(StrLine, ChannelOffset, Length(StrLine)- ChannelOffset);
//Wenn du die einzelnen Namen haben willst
Nicks := StringReplace(Nicks,' ',#$D#$A,[rfReplaceAll]);
ListBox1.Items.Text := Nicks;
end;

procedure TForm1.Button1Click(Sender: TObject);
var Pos353,PosLineEnd : Integer;
begin
Pos353 := Pos('353', Memo1.Lines.Text);
PosLineEnd := PosEx(#$D#$A,Memo1.Lines.Text,Pos353)-1;
GenerateNicks(Copy(Memo1.Lines.Text,Pos353,PosLineEnd-Pos353));
end;

end.
Ich hoffe ich konnte dir helfen. Habs sogar getestet bei mir funkts :mrgreen: :mrgreen: :zwinker:

Jo danke. Nur hab ich gesehen das -1 muss weg weil sonst der nick abgeschnitten wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:46 Uhr.
Seite 4 von 4   « Erste     234   

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