Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка конвертирования данных из 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]

удалить кавычку из строки конечно же


Наверх

Титульная страница Поиск, карта сайта Написать письмо