Vb6 如何从服务器上的客户端提取数据?

Vb6 如何从服务器上的客户端提取数据?,vb6,Vb6,我正在vb6上工作,并成功地使用winshock组件创建了服务器项目。连接客户端(生化分析仪软件),测试完成后将数据发送至服务器。它以字符串的形式出现,即 MSH|^~\&|Factory|Chemistry Analyzer|||20210430190330||ORU^R01|9|P|2.3.1||||0||ASCII||| PID|9||||shitalPL|||||||||||||||||||||||||| OBR|1||11|Factory^Chemistry Analyzer|

我正在vb6上工作,并成功地使用winshock组件创建了服务器项目。连接客户端(生化分析仪软件),测试完成后将数据发送至服务器。它以字符串的形式出现,即

MSH|^~\&|Factory|Chemistry Analyzer|||20210430190330||ORU^R01|9|P|2.3.1||||0||ASCII|||
PID|9||||shitalPL||||||||||||||||||||||||||
OBR|1||11|Factory^Chemistry Analyzer|N||20210430183639||||||||Serum|||||||||||||||||||||||||||||||||
OBX|1|NM|GLU|GLU|198.452857|mg/dL|-|Normal|||F||198.452857|20210430183639||||
如何从这些东西中获得所需的值。并将其存储在表中以供进一步使用

例如,在这种情况下:

  • 样本ID为
    9

  • 患者姓名为
    shitalPL

  • 样本类型为
    血清

  • 测试名称为
    GLU

  • 测试结果为
    198.452857


  • 假设这些值在响应中具有固定位置,您可以实现一个函数,将
    n
    作为参数传递,函数返回第n个管道的位置,然后您可以对
    n+1
    重复此操作,然后简单地提取
    n
    n+1
    第n个管道位置之间的数据

    我可以给你一个python的示例代码,希望你能转换成vb6。这个函数看起来像这样-

    def findNthOccur(string, ch, N):
        occur = 0
    
        # Loop to find the Nth
        # occurence of the character
        for i in range(len(string)):
            if (string[i] == ch):
                occur += 1
    
            if (occur == N):
                return i
    
        return -1
    
    

    此函数将获取您要在其中查找实例的字符串、您要查找的字符(“|”)以及
    n
    将是您要查找的第n个实例

    非常感谢。我明白你的意思。我将在vb6中尝试并还原它。看起来您的数据是管道分隔的,有些值为null。如果是这种情况,我将使用
    Split
    函数将所有数据拉入一个数组。然后,您可以在更新数据库时引用数组以获取所需的值。谢谢。分割功能工作。再次感谢。现在我可以分离我所需要的值。