当前位置:主页>仓库管理软件> 列表

在一个字段内提取一部分字段 找财务管理软件

库存管理软件版1楼: 数据库内有一字段如下:RES-06/008A[201887] 或者 HC-06/006HKA[6037] 或者 PCFI168-4473[EPI-05A (缺少右中括号)。有没有办法提取出中括号内的字段?
类似的,RED616 - 3 EA 和 BURG149 - 3 EA ,有没有办法提取出‘3’这个字段?
谢谢。

2楼: 你找到兩個 [ ],拷貝一下不就行了 如财务管理软件

3楼: 關鍵要找到你的資料的規律性,其他就好辦了。

4楼: 可以用pos找到[],再用COPY就可以啦

5楼: 如果给你一个这样的字段,自己都不能提取出你要的,那就没办法考虑程序了

6楼: --如果给你一个这样的字段,自己都不能提取出你要的,那就没办法考虑程序了
happy3001说得对,必须找出规律,才能写出程序
对你这种数据,我只能说,太勤奋的程序员不是好程序员,一般的算法,对输入控制一般来说,都是严格的,这里的数据显然规格不好
算法的本质是对正确实用的输入产生预期的输出,而不是对随意的输入产生预期的输出,否则,你将变成一个必须足够勤奋的程序员

库存管理软件版7楼: --如果给你一个这样的字段,自己都不能提取出你要的,那就没办法考虑程序了


happy3001说得对,必须找出规律,才能写出程序
对你这种数据,我只能说,太勤奋的程序员不是好程序员,一般的算法,对输入控制一般来说,都是严格的,这里的数据显然规格不好
算法的本质是对正确实用的输入产生预期的输出,而不是对随意的输入产生预期的输出,否则,你将变成一个必须足够勤奋的程序员

8楼: var I,J: Integer;
tmp1,tmp2,MyString:string;
begin
MyString:=''PCFI168-4473[EPI-05A'';
I := Length(MyString);
while I > 0 do //根据实际情况从字符串后面开始取
begin
if MyString[I]<>''['' then
begin
if MyString[I]<>'']'' then
tmp1:=tmp1+MyString[I]
end
else break;
I := I - 1;
end;
J:=0 ;
for I:=length(tmp1) downto 0 do //把字符串颠倒
begin
tmp2:=tmp2+tmp1[I]; //tmp2就是你要的结果
end;

end;
算法差了点,不过容易理解,结果应该是

9楼: 你要实现的算法是不是可以这样说:
Input:
一个含有中括号的字符串(一对,或只有左边)
OutPut:
如果是一对中括号,则返回中括号内部的串,否则,返回左中括号后面的串



Input:
一个含有 “-” 符(有且只有一个)的串
OutPut:
“-”符后面的字符,但遇空格时截断,不包含空格

这两问题都不难

10楼: 谢谢大家的热心回答。happy3001,Icc真的说中了我的心声,在这些杂乱无章的数据库里面真的很难找到规律,我也不想做那种勤奋的程序员。我在一个工厂里面做程序员,接手的数据库都是诸如此类的。最糟糕的是还要在这种数据库上面继续开发。
感谢outspace,icc的算法。揣摩后有所悟。谢谢了。然而数据库里面还有很多这些没有规律的数据,我不能对每一个都费尽脑汁的提取有用字段来处理。我宁愿改走别的路子,比如新建一个合适的数据库。
谢谢大家,结啦!

11楼: 呵呵,见笑,我只不过是个区区的系统分析设计师,兼做测试的设计和编码