これは以前の質問hereのフォローアップの質問です。Delphi 7 Indy 9アプリをIndy 10(II)にアップグレード
多くのコマンドと応答は、区切り文字列としてコード化されています。 Delphi 7では、これらは通常、chr(166)およびchr(167)を使用してコード化されます。
procedure TFormMain.IdTCPServer1InsertAccount(
ASender: TIdCommand);
var
cmd: String;
request: String;
Params: TMyStrings;
AccountNo, Address, UserName: String;
begin
cmd := 'InsertAccount';
request := Copy(ASender.Rawline, Length(cmd) + 2, Length(ASender.RawLine));
Params := TMyStrings.Create;
try
AssignDelimited(chr(166), request, Params);
AccountNo := Params[0];
Address := replace(char(167), #13#10, Params[1])
UserName := Params[2];
パラメータがスペースを含むことができるようになったようです。
// typical client code
request := edAccountNo.Text + chr(166) +
replace(#13, chr(167), replace(#10, '', memoAddress.Lines.Text) +
chr(166) + Fusername;
idTCPClient1.WriteLn('InsertAccount' + space + request);
今でデルファイ10.1にこのコードを変換する際に:同様に、そのコンテンツメモコントロールから来た自分のキャリッジリターンラインはCHR(167)に置き換えフィードたので、メモの内容がコマンドを終了させずに送ることができるコマンドIndy 10、私はANSIChar(166)で検索と置換chr(166)を行いましたが、Indy 10は127より高いANSICharsを好きではないことをすぐに発見しました。 ? 'sのサーバー
は、このコードをアップグレードするための最善のアプローチは何ですか?おかげさまで
ご質問ありがとうございました。 – nolaspeaker