![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
У меня вопрос как из проги на Delphi вывести в Excel знак диаметра(в базе он обозначен D=)
Код:
stroka:=FieldByName('NAZ_PRICE').AsString;
while Pos('d=', stroka) > 0 do stroka[Pos('d=', stroka)]:=chr(216); // тут код диаметра
Sheet.Cells[i,1].value:=strokachr(216) выводит букву Ш в Excel помогите как ето обойти Последний раз редактировалось Admin, 07.02.2017 в 19:29. |
|
#2
|
|||
|
|||
|
Версии Delphi и Excel какие? И описание переменной stroka?
Тут, походу, где-то путается Ansi и Unicode строки. В Unicode код 216 (D8) действительно дает знак диаметра, а в Ansi - букву Ш (на "русском" шрифте). |
|
#3
|
|||
|
|||
|
Цитата:
версия Delphi 5 - на сколько я читал все Delphi до 2009 не поддерживают Unicode и только с 2009 начали поддерживать у меня проект большой и переходить нереально - что делать? |
|
#4
|
|||
|
|||
|
[/code]Админ: Пользуемся тегами при оформлении кода!
если можно поподробнее или хотя бы небольшой пример - плиз |
|
#5
|
||||
|
||||
|
Win10 x32, D7, Excel 2007
Код:
var
...
s: WideString;
i: Integer;
begin
...
s := Sheet.Cells[1, 1]; {значение в ячейке 'Внешний d=12, внутренний d=8'}
i := Pos('d=', s);
while i > 0 do
begin
s[i] := WideChar(216);
i := Pos('d=', s);
end;
Sheet.Cells[1, 1] := s; {значение в ячейке стало 'Внешний Ø=12, внутренний Ø=8'}
...
end;Последний раз редактировалось dr. F.I.N., 13.02.2017 в 20:50. |
|
#6
|
||||
|
||||
|
Цитата:
http://www.delphisources.ru/pages/forum_rules.html |
|
#7
|
|||
|
|||
|
Цитата:
Спасибо за четкий пример в Delphi 6 работает только проект у меня во 2-ом а там нет WideString. WideChar есть а переменных WideString нет ![]() |
|
#8
|
||||
|
||||
|
Цитата:
|
|
#9
|
|||
|
|||
|
Цитата:
очень большой нереально (работает сеть магазинов на нем) вот решили сделать сайт-магазин и соотв экспорт данных из базы Последний раз редактировалось igr37, 14.02.2017 в 14:20. |
|
#10
|
||||
|
||||
|
Цитата:
![]() |
|
#11
|
|||
|
|||
|
Цитата:
Уже лет 10 наша фирма работает в базе сделанной на Делфи 2 теперь решили еще заняться продажей в инете - на сайте, там и надо знак диаметра Насчет что мешает перейти на Д6 я уже некоторое время назад пробовал перекомпилировать но ето большой геморой - надо переделывать все печатные формы их много ибо автоматом не переводит на Д6 ибо там еще 1-я версия Quickrep а на Д6 уже 2-я(или 3-я не помню) и они не совместимы в переводе малой кровью. Ну и другие есть мелочи Последний раз редактировалось igr37, 14.02.2017 в 17:10. |
|
#12
|
|||
|
|||
|
Ну, можно поизвращаться для упрощения перехода.
Например, выкинуть все отчеты в отдельный проект и его собирать на D2, а саму программу - на D7 (кстати, не рекомендуется пользоваться D6, т.к. там достаточно много багов; D7 - это та же D6, но с пофикшенными багами). Кстати, и тут можно так же поступить - написать отдельную DLL на D6/D7 для экспорта и вызывать ее из основной программы. Это есть так критично сделать это минимальными усилиями. |
|
#13
|
|||
|
|||
|
Цитата:
Я так тоже подумал и попробовал сделать но возврат функции должен быть в WideString а его то как раз и нет в Д2 Последний раз редактировалось igr37, 15.02.2017 в 11:53. |
|
#14
|
||||
|
||||
|
Цитата:
|
|
#15
|
|||
|
|||
|
Цитата:
записываю в клипборд из ячейки Excel потом вставляю в Excel куда надо а там О что-то я подозреваю что ето невыполнимая миссия ![]() |