![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка конвертирования данных из Excel в тип Data [D7, WinXP]
samalex2504 © (2011-05-18 09:00:00)Уважаемые знатоки!!!
Есть задача:
Из Excel 2007 берется копированием строка
к примеру "№ 15 от 08.04.2011 г."
Из этой строки нужно вытащить № и дату
я написал функцию
procedure TForm1.Button1Click(Sender: TObject);
var
BufStr, BufNum, BufDate,BufDate1 : string;
BufInt1, BufInt2, i : integer;
begin
try
if (Trim(c4.Text)'') and (Length(Trim(c4.Text))>8) Then
begin
BufStr:=c4.Text;
BufInt1:=Pos('от',BufStr);
BufNum:=Trim(Copy(BufStr,1,BufInt1-1));
BufInt2:=Pos('ã.',BufStr);
BufDate:=Trim(Copy(BufStr,BufInt1+2,100));
BufDate:=Trim(StringReplace(BufDate,'г.','',[rfReplaceAll]));
c1.Text:=BufNum;
c5_1.Text:=BufDate;
c5.Date:=StrToDate(BufDate);
end;
Except
ShowMessage('Неправильный формат ввода платежного поручения :" - пример "№ 28 от 26.04.2011 г."');
end;
end;
Так вот, приc5.Date:=StrToDate(BufDate);
"Возникает ошибка
samalex2504 (2011-05-18 09:48:00) [1]Может, я что-то путаю, но после вставки кода
for i:=1 to Length(BufStr) do
begin
if (Ord(BufStr[i-1])=160) Then BufStr[i-1]:=' ';
end;
Все заработало.
Anatoly Podgoretsky (2011-05-18 09:41:00) [2]> samalex2504 (18.05.2011 09:36:02) [2]
В ASCII код 160 для русской таблицы это символ "А", а не пробел
Anatoly Podgoretsky (2011-05-18 09:40:00) [3]> samalex2504 (18.05.2011 09:36:02) [2]
А ты что ручками с экрана переписываешь, иначе при чем, что "ее визуально не
видно".
samalex2504 (2011-05-18 09:36:00) [4]ее визуально не видно
перед "от" вместо пробела с аскии кодом 32
стоит пробел с аскии кодом 160
Какой функцией заменить символ по аскии-коду?
Или перебирать в цикле?
Медвежонок Пятачок (2011-05-18 09:16:00) [5]удалить кавычку из строки конечно же