請教pos函式 delphi ,根據字串位置讀取

2025-03-16 19:20:09 字數 4149 閱讀 1628

1樓:網友

方法:寬衝首先在edit1中的字串「1949年(==y27g3adc<==2008年 」中找到「(=和「<=的位置,然後將其間的字串提取出來即可。**如下:慎滲殲。

procedure : tobject);

vars1,s2: string;

p1,p2: integer;

begins1 :=;

p1 :=pos('喊帶(==s1);

p2 :=pos('s2 :=copy(s1,p1+6,p2-p1-6)//s2即為中間那8位數。

if s2 = then

有情況,要求動手','提示',mb_ok+mb_iconinformation);

end;end;

2樓:壬瑜

如果edit1中的字串格式是固定的那就可以簡單點。

varstr, tmpstr: string;

beginstr :=;

扮陵/從第13個梁鉛字元(就是')'後的第1個字元)開橡缺好始取8個字元。

tmpstr :=copy(str, 13, 8);

if tmpstr = then

showmessage('有情況')

elseshowmessage('沒情況');

end;

delphi如何獲取乙個字串再另乙個字串中最後一次出現的位置

3樓:網友

delphi的函式很多,被明日科技寫入函式大全的就是厚厚一本400多頁的書。因此沒有多少人去讀完它,只是滿足於幾十個常用函式而已。

pos在找到子串的首次位置後,我一般是採用在這個位置將字串切斷,並再次查詢下乙個子串位置。

delphi中pos函式怎麼用?

4樓:摯愛和你共亨

delphi中pos函式解法思路如下:

取出子串在父串中第一次出現的位置。

例如pos('b','abcd');

返回結果是2

5樓:網友

取出子串在父串中第一次出現的位置。

例如pos('b','abcd');

返回結果是2

在delphi中,怎麼查詢字串?

6樓:網友

另外,乙個簡單的辦法,就是用finddialog對話方塊,它提供這種機制。

7樓:網友

用函式可以完成,如果在資料庫中可以用到like

delphi漢字字串中查詢漢字第二次出現的位置

8樓:網友

如果是純中文字串,可以先對字串進行轉換處理:比如s1,zf:widestring;//widestring寬字元,指乙個字元佔兩個位元組的字元。

s1:=widestring('門診醫療診療收費收據');

然後再i:=pos('療',s1);

試一下?要找到第二個字元的位置,要麻煩一些。

先用pos函式給第乙個字元第乙個字元的位置然後用zf:=copy(s1,i+1,length(s1)-i);//去掉了第乙個要找字元及前面的字元。

j:=pos('療',zf);

j:=i+j;

此時j的值就是第二個'療'在串中的位置。

9樓:網友

str要定義為widestring

str:='我我';

pos('我',str)+pos('我',copy(str,i+1))

請教關於delphi讀取字串的問題

10樓:臨崖策馬

先read,用或file操作都行。

然後對讀出來的字串進行解析,用pos,copy兩個函式就夠 了。

11樓:網友

如果可能,建議樓主使用記錄檔案型別,不直接處理字串。

如果是「資料1---資料2---資料3---資料4」這樣的資料格式,可以這樣處理,安全又高效:

procedure : tobject);

varlists: tstrings;

list: tstrings;

s: string;

i: integer;

j: integer;

beginlists := ;

list := ;

tryfor i := 0 to - 1 do begins := ;

s := stringreplace(s, '---', ',', [rfreplaceall]);

s;for j := 0 to - 1 doshowmessage(;

end;finally

end;finally

end;end;

delphi 獲取兩字串之間的內容

12樓:網友

1樓得方法應該就可以了:

vari,j : integer;

x,y : integer;

begini := pos(strleft,fullstr);

x := i+length(strleft) ;

y := length(fullstr)-x +1;

strtmp := copy(fullstr,x,y);

j := pos(strright,strtmp)-1;

strtmp := copy(strtmp,1,j);

end;

13樓:極天異雲

使用pos函式得到子字串的位置,然後使用copy就可以了。

具體查一下delphi的幫助,你得學會這個才能學會自己解決問題。

delphi 獲取字串之間多個字元內容

14樓:網友

可通過函式pos及copy配合使用實現該功能。

一、函式說明:

pos:獲取特定字元所處字串的位置,返回資料型別為整型。pos共有兩個引數:pos(特定字元或字串,源字串)。

copy:字串擷取,返回資料型別為字元型。copy共有三個引數:copy(源字串,起始擷取位(整型,可為變數),擷取位數(整型,可為變數))。

二、例項演示(筆者以擷取特定字元『.'前5位為例),操作如下:

1、新增tedit及tbutton控制項各乙個;

2、在tbutton控制項的單擊事件中,寫入**:showmessage(copy(trim(,pos('.',trim(,5));

3、在tedit中隨便輸入一串字元,點選tbutton控制項,效果如下圖:

15樓:網友

varspos,epos :integer;

str :widestring;

sl :tstringlist;

beginsl := ;

trystr := '你好:嗯;你好:好;多謝:謝謝;知道:不知道;好了:沒有;';

repeat

spos := pos(':',str); //查詢":"的位置。

if spos > 0 then //判斷字串中是否含有":"

beginepos := pos(';',str); //查詢";"的位置。

if epos > 0 then //判斷字串中是否含有";"

spos + 1,epos - spos - 1)) //含有";"就獲取":"到";"的字串。

elsebegin //不含";" 就直接獲取全部字串 並賦值0給spos 結束迴圈。

spos := 0;

end;str := copy(str,epos + 1,length(str) -epos);

end;until spos = 0;

showmessage(;

finally

freeandnil(sl);

end;end;

16樓:網友

建議用正規表示式計算,方便、快捷、簡單。

17樓:匿名使用者

如果是漢字,建議將字串轉換為 widestring 然後用pos函式就可以直接去出來了。

delphi中函式返回陣列問題,delphi 函式返回值的定義問題

你定義的函式不是返回陣列型別的,只是返回乙個word 首先定義乙個陣列型別 type tarr array of integer 然後定義返回這個陣列型別的函式 function strsplit strsplit,str string tarr varstr array 1.2 of intege...

根據下列函式影象判斷函式的奇偶性

prince睡 奇函式影象關於原點對稱,偶函式影象關於y軸對稱,圖1和圖3是偶函式,圖2是奇函式,圖4既不是奇函式也不是偶函式。 奇函式關於遠點對稱 偶函式關於y軸對稱 所以1 3是偶函式 2是奇函式 4什麼也不是 也可以通過x 1,看f x f x f x 看影象判斷 偶函式必要條件 y座標軸對稱...

什麼是儲蓄函式,根據儲蓄函式,引起儲蓄增加的因素是( )。

儲蓄函式是指儲蓄與決定儲蓄大小的各種因素之間的依存關係。影響儲蓄的因素很多。但收入是最主要的因素,所以,儲蓄函式主要反映收入與儲蓄之間的依存關係,一般而言,在其他條件不變的情況下,儲蓄隨收入的變動而同方向變動,即收入增加,儲蓄增加,收入減少,儲蓄減少。儲蓄函式的公式為 s f y 因為 y c s ...