|
List Info
Thread: Using the copy function to separate data
|
|
| Using the copy function to separate data |

|
2007-01-05 03:53:12 |
|
Oh, then you need to change the third argument in the Copy funtion - it's the length of the returned string -
like this - Copy(<string to copy>, <postion to start>, <length>)
the same code with the third argument set to length (3) -
procedure TfrmMain.Button1Click(Sender: TObject);
var
Data : string;
begin
Data := '0.0000.1370. 000';
memo.lines.add( Copy (Data, 1, 3));
memo.lines.add( Copy (Data, 6, 3));
memo.lines.add( Copy (Data, 11, 3));
end;
Here's the result the new code gets:
0.0
0.1
0.
Notice, the third result still isn't what you want - that's because there's still a space in your data string. If you clean all the spaces out of the string, you'll get the right result (I trimmed the space from the front of the string when I first made the sample code).
To get all those pesky spaces out, you can add a function - like this:
procedure TfrmMain.Button1Click(Sender: TObject);
function GetRidOfSpaces(InString: String): string;
var
i: integer;
begin
Result := '';
for i := 1 to Length(InString) do
begin
if InString[i] <> ' ' then Result := Result + InString[i];
end;
end;
var
Data : string;
begin
Data := '0.0000.1370. 000';
Data := GetRidOfSpaces(Data);
memo.lines.add( Copy (Data, 1, 3));
memo.lines.add( Copy (Data, 6, 3));
memo.lines.add( Copy (Data, 11, 3));
end;
Here's the result you're looking for:
0.0
0.1
0.0
I hope this helps.
joe
Joe Wilcox
"Reading Cliff Notes to know a novel is like eating Count Chocula to know steak"
"Nine women cannot have a baby in one month"
falon5000%40yahoo.com">falon5000 yahoo.com
----- Original Message ----
From: Curtis cloud < curtiscld%40yahoo.com">curtiscld yahoo.com>
To: delphi-en%40yahoogroups.com">delphi-en yahoogroups.com
Sent: Thursday, January 4, 2007 8:23:05 PM
Subject: Re: [delphi-en] Using the copy function to separate data
Joe,
I was looking for the following results:
0.0
0.1
0.0
r/Curtis..
joe wilcox <falon5000 yahoo. com> wrote:
Using your sample code, I wrote this simple test:
procedure TfrmMain.Button1Cli ck(Sender: TObject);
var
Data : string;
begin
Data := '0.0000.1370. 000';
memo.lines.add( Copy (Data, 1, 3));
memo.lines.add( Copy (Data, 6, 8));
memo.lines.add( Copy (Data, 11, 13));
end;
Here's the result I got -
0.0
0.1370.
0. 000
That's pretty much what you're looking for, isn't it?
Joe Wilcox
"Reading Cliff Notes to know a novel is like eating Count Chocula to know steak"
"Nine women cannot have a baby in one month"
falon5000 yahoo. com
----- Original Message ----
From: Curtis cloud <curtiscld yahoo. com>
To: delphi-en yahoogrou ps.com
Sent: Thursday, January 4, 2007 3:13:44 PM
Subject: [delphi-en] Using the copy function to separate data
ALL,
I have a telnet connection to a server computer that constant broadcast data to me each second. The data that I receive has spaces and tabs in the middle of the string. Once I receive the data I remove all spaces and tabs to get a single stream of data. After I receive the stream I attempt to parse the data into segments using the copy function.
My problem is this when I look at the stream the data looks fine but when I use the copy funtion it does not work properly on the data.
Here is an example :
Single stream from a telnet connection
0.0000.1370. 000
Data := ' 0.0000.1370. 000'
Copy (Data, 1, 3) yield value 0.0 which is fine.
Copy (Data, 6, 8) yields value 0.0000.0 which is wrong.
Copy (Data, 11, 13) yields value 0.0000.0000. 0 which is wrong.
I'm not sure why I am not receiving the correct data.
r/Curtis..
____________ _________ _________ _________ _________ __
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail. yahoo.com
[Non-text portions of this message have been removed]
[Non-text portions of this message have been removed]
____________ _________ _________ _________ _________ __
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail. yahoo.com
[Non-text portions of this message have been removed]
[Non-text portions of this message have been removed]
__._,_.___
.
__,_._,___
|
| Using the copy function to separate data |

|
2007-01-05 16:06:58 |
|
Thanks for all the help, it appreciated.
r/Curtis..
joe wilcox < falon5000%40yahoo.com">falon5000 yahoo.com> wrote:
Oh, then you need to change the third argument in the Copy funtion - it's the length of the returned string -
like this - Copy(<string to copy>, <postion to start>, <length>)
the same code with the third argument set to length (3) -
procedure TfrmMain.Button1Click(Sender: TObject);
var
Data : string;
begin
Data := '0.0000.1370. 000';
memo.lines.add( Copy (Data, 1, 3));
memo.lines.add( Copy (Data, 6, 3));
memo.lines.add( Copy (Data, 11, 3));
end;
Here's the result the new code gets:
0.0
0.1
0.
Notice, the third result still isn't what you want - that's because there's still a space in your data string. If you clean all the spaces out of the string, you'll get the right result (I trimmed the space from the front of the string when I first made the sample code).
To get all those pesky spaces out, you can add a function - like this:
procedure TfrmMain.Button1Click(Sender: TObject);
function GetRidOfSpaces(InString: String): string;
var
i: integer;
begin
Result := '';
for i := 1 to Length(InString) do
begin
if InString[i] <> ' ' then Result := Result + InString[i];
end;
end;
var
Data : string;
begin
Data := '0.0000.1370. 000';
Data := GetRidOfSpaces(Data);
memo.lines.add( Copy (Data, 1, 3));
memo.lines.add( Copy (Data, 6, 3));
memo.lines.add( Copy (Data, 11, 3));
end;
Here's the result you're looking for:
0.0
0.1
0.0
I hope this helps.
joe
Joe Wilcox
"Reading Cliff Notes to know a novel is like eating Count Chocula to know steak"
"Nine women cannot have a baby in one month"
falon5000%40yahoo.com">falon5000 yahoo.com
----- Original Message ----
From: Curtis cloud < curtiscld%40yahoo.com">curtiscld yahoo.com>
To: delphi-en%40yahoogroups.com">delphi-en yahoogroups.com
Sent: Thursday, January 4, 2007 8:23:05 PM
Subject: Re: [delphi-en] Using the copy function to separate data
Joe,
I was looking for the following results:
0.0
0.1
0.0
r/Curtis..
joe wilcox <falon5000 yahoo. com> wrote:
Using your sample code, I wrote this simple test:
procedure TfrmMain.Button1Cli ck(Sender: TObject);
var
Data : string;
begin
Data := '0.0000.1370. 000';
memo.lines.add( Copy (Data, 1, 3));
memo.lines.add( Copy (Data, 6, 8));
memo.lines.add( Copy (Data, 11, 13));
end;
Here's the result I got -
0.0
0.1370.
0. 000
That's pretty much what you're looking for, isn't it?
Joe Wilcox
"Reading Cliff Notes to know a novel is like eating Count Chocula to know steak"
"Nine women cannot have a baby in one month"
falon5000 yahoo. com
----- Original Message ----
From: Curtis cloud <curtiscld yahoo. com>
To: delphi-en yahoogrou ps.com
Sent: Thursday, January 4, 2007 3:13:44 PM
Subject: [delphi-en] Using the copy function to separate data
ALL,
I have a telnet connection to a server computer that constant broadcast data to me each second. The data that I receive has spaces and tabs in the middle of the string. Once I receive the data I remove all spaces and tabs to get a single stream of data. After I receive the stream I attempt to parse the data into segments using the copy function.
My problem is this when I look at the stream the data looks fine but when I use the copy funtion it does not work properly on the data.
Here is an example :
Single stream from a telnet connection
0.0000.1370. 000
Data := ' 0.0000.1370. 000'
Copy (Data, 1, 3) yield value 0.0 which is fine.
Copy (Data, 6, 8) yields value 0.0000.0 which is wrong.
Copy (Data, 11, 13) yields value 0.0000.0000. 0 which is wrong.
I'm not sure why I am not receiving the correct data.
r/Curtis..
____________ _________ _________ _________ _________ __
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail. yahoo.com
[Non-text portions of this message have been removed]
[Non-text portions of this message have been removed]
____________ _________ _________ _________ _________ __
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail. yahoo.com
[Non-text portions of this message have been removed]
[Non-text portions of this message have been removed]
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
[Non-text portions of this message have been removed]
__._,_.___
.
__,_._,___
|
[1-2]
|
|