线程是处置字符串,得到的字会变化

线程是处理字符串,得到的字会变化?
在一个线程是,对字符串进行处理。

代码如下:

    writes2:='';
    writes2:=writes2+IntToHex(ord(writes[1]),2);
    writes2:=writes2+IntToHex(StrToInt(writes[2]),2);
    str:=IntToHex(StrToInt(writes[3]+writes[4]+writes[5]+writes[6]+writes[7]),4);
    writes2:=writes2+IntToHex((StrToInt('$'+str)div 256),2);
    writes2:=writes2+IntToHex((StrToInt('$'+str)mod 256),2);
    str:=IntToHex(StrToInt(writes[8]+writes[9]+writes[10]+writes[11]+writes[12]),4);
    writes2:=writes2+IntToHex((StrToInt('$'+str)div 256),2);
    writes2:=writes2+IntToHex((StrToInt('$'+str)mod 256),2);
    writes2:=writes2+IntToHex(StrToInt(writes[13]+writes[14]),2);

可有时候得到writes2的值,会少了很多?为什么呢?

如果把这一段代码放在线程外部执行后得值传入线程,就没有问题!
------解决方案--------------------
writes、writes2都是函数的局部变量吗?
------解决方案--------------------
是否在中途结束了线程?
------解决方案--------------------
有异常触发吗?
------解决方案--------------------
大哥,不是你数据库字段限制了长度吧。
------解决方案--------------------
这个是有可能的。。