後でデータベースに保存する 1 つの文字列を 2 つの部分に分割しようとしているときに、このコードを作成しました。今のところ、「word word number」のような 3 単語の文字列を 3 つのフィールドに取得することに成功しましたが、「word number」のような 1 つの単語と数字のみの文字列を 2 つのフィールドに分割しようとすると、理解できないエラー メッセージが表示されます。
procedure Split
(const Delimiter: Char;
Input: string;
const Strings: TStrings) ;
begin
Assert(Assigned(Strings)) ;
Strings.Clear;
Strings.Delimiter := Delimiter;
Strings.DelimitedText := Input;
end;
procedure TForm2.Button64Click(Sender: TObject);
var
A: TStringList; i,c:integer;
begin
c:=0;
//for i:= 0 to ListBox1.Items.Count do
//begin
A := TStringList.Create;
// try
// Split(' ',listbox1.Items.Strings[0], A) ;
Split(' ',ListBox1.Items.Strings[ListBox1.ItemIndex], A) ;
// finally
// A.Free;
for i := 48 to 57 do
if A[1]<>char(i) then
c:=1
else
if A[1]=char(i) then
c:=2;
if c=1 then
begin
edit81.Text:=(A[0]+' '+A[1]);
edit82.Text:=A[2];
end
else
if c=2 then
begin
edit81.Text:=A[0];
edit82.Text:=A[1];
end;
end;
エラーメッセージは次のとおりです。
First chance exception at $7C812FD3. Exception class EStringListError with message 'List index out of bounds (2)'. Process paligs.exe (732)
edit81フィールドの文字列とedit 82フィールドの数字からすべての単語を取得しようとしています。
フォームからの私の画像: http://i.stack.imgur.com/7vnS8.jpg