我用socket,做了一个程序,用SocketClient,往服务器端发命令,我是用
Socket.SendText发送的,服务器是用SocketServer,Socket.ReceveText
来接收字符串的,Client和Server的程序,我都写SocketRead里面了,但是
我来回发送字符串,很不方便,例如:
我要登陆服务器,先发送用户名和密码,这时我就的向服务器端发送数据,
服务器端就的发送响应,但是我都写在SocketRead中了,每回都的响应数据,
每回都的执行,相同的程序。问题:我同时发送两个变量,请问怎么实现,要是用一个发送,请问怎么取出
      其中的一部分字符串,例如: 字符串name2233,name是用户名,2233是密码。
      请问怎么取出字符串中的一部分,请给出源码,给出个例子。
      

解决方案 »

  1.   

    最好用一个分割标志分割usenid/pwd
    例如
    name/2233
    接受段用copy函数取出
    string s1,s2;
    s1:='name/2233';
    s2:=Copy(s1, 1, Pos('/', s1) - 1);
    可以取出name
    同理可取出2233
      

  2.   

    请问多个怎么办,copy函数里面的变量是什么意思?
      

  3.   

    多个就用多个分割复割开
    function Copy(S; Index, Count: Integer): string;
    function Copy(S; Index, Count: Integer): array;DescriptionS is an expression of a string or dynamic-array type. Index and Count are integer-type expressions. Copy returns a substring or sub array containing Count characters or elements starting at S[Index]. If Index is larger than the length of S, Copy returns an empty string or array.If Count specifies more characters or array elements than are available, only the characters or elements from S[Index] to the end of S are returned.
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
            s1,s2,s3:String;
    begin
    //name/2233
    //接受段用copy函数取出
    //string s1,s2;
            s1:='name/2233/hhhh/9999';
            s2:=Copy(s1, 1, Pos('/', s1) - 1);
            s3:=Copy(s1, 6, Pos('/',s1)-1);//取出2233 
            memo1.Lines.Add(s1);
            memo1.Lines.Add(s2);
            memo1.Lines.Add(s3);
    //可以取出name
    //同理可取出2233
    end;
    copy()其中s1是字符串,6是s1的第六个字符,-1为减去/字符。
    我想问一下,字符串 s1:='name/2233/hhhh/9999/0000/9009909/78988'
    如何任意取出其中的任何一个字符,我想编这么一个函数SearchString(),
    先查出s1的'/'字符个数,在取出其中的各个字符,我想用函数SearchString(1,s1)
    就取出s1的name,SearchString(2,s1),就取出s1的2233,以下依旧
    请问怎么实现?????????????????????????????
      

  5.   

    请问怎么实现?????????????????????????????
    你们用socket,是怎么实现的,请说一下?
      

  6.   

    SendBuf: array [0..99] of char;
    Name: array[0..9] of char;
    password: array[0..9] of char;
    copymemory(@SendBuf[0], @Name[0], sizeof(Name));
    copymemory(@SendBuf[sizeof(Name)], @Password[0], sizeof(Password));
    Socket.SendBuf(SendBuf, sizeof(Password) + sizeof(Name));RecvBuf:array[0..99] of char;
    Socket.RecvBuf(RecvBuf);
    copymemory(Name, RecvBuf, sizeof(Name));
    copymemory(Password, RecvBuf[sizeof(Name)], sizeof(Password));
      

  7.   

    我说的是多个,上面那个,怎么解决,怎么找出,一个字符串中的‘/’字符的个数,怎么实现多个
    字符取出,例如: 
    string s1,s2,s3;
    function searchString();
    s1='name/pwd/name1/name2/name3'
    请问function searchString()就是找出字符串中的字符,
    searchString(1,s1) 我想取出字符s1的第一个字符,就是name
    searchString(2,s1) 我想取出字符s1的第二个字符,就是pwd
    依此类推,请问searchString函数怎么实现?????????????