Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.02.2017, 12:20
igr37 igr37 вне форума
Прохожий
 
Регистрация: 01.02.2017
Сообщения: 9
Версия Delphi: Delphi 2
Репутация: 10
По умолчанию знак диаметра в Delphi

У меня вопрос как из проги на 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:=stroka
Админ: Пользуемся тегами при оформлении кода!

chr(216) выводит букву Ш в Excel
помогите как ето обойти

Последний раз редактировалось Admin, 07.02.2017 в 19:29.
Ответить с цитированием
  #2  
Старый 07.02.2017, 19:57
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Версии Delphi и Excel какие? И описание переменной stroka?
Тут, походу, где-то путается Ansi и Unicode строки.
В Unicode код 216 (D8) действительно дает знак диаметра, а в Ansi - букву Ш (на "русском" шрифте).
Ответить с цитированием
  #3  
Старый 13.02.2017, 19:13
igr37 igr37 вне форума
Прохожий
 
Регистрация: 01.02.2017
Сообщения: 9
Версия Delphi: Delphi 2
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Версии Delphi и Excel какие? И описание переменной stroka?
Тут, походу, где-то путается Ansi и Unicode строки.
В Unicode код 216 (D8) действительно дает знак диаметра, а в Ansi - букву Ш (на "русском" шрифте).

версия Delphi 5 - на сколько я читал все Delphi до 2009 не поддерживают Unicode и только с 2009 начали поддерживать
у меня проект большой и переходить нереально - что делать?
Ответить с цитированием
  #4  
Старый 13.02.2017, 19:18
igr37 igr37 вне форума
Прохожий
 
Регистрация: 01.02.2017
Сообщения: 9
Версия Delphi: Delphi 2
Репутация: 10
По умолчанию

[/code]Админ: Пользуемся тегами при оформлении кода!

если можно поподробнее или хотя бы небольшой пример - плиз
Ответить с цитированием
  #5  
Старый 13.02.2017, 20:42
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 660
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

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;
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.

Последний раз редактировалось dr. F.I.N., 13.02.2017 в 20:50.
Ответить с цитированием
  #6  
Старый 13.02.2017, 21:11
Аватар для Admin
Admin Admin вне форума
Администратор
 
Регистрация: 03.10.2005
Адрес: Россия, Москва
Сообщения: 1,560
Версия Delphi: Delphi 7
Репутация: выкл
По умолчанию

Цитата:
Сообщение от igr37
Админ: Пользуемся тегами при оформлении кода!

если можно поподробнее или хотя бы небольшой пример - плиз

http://www.delphisources.ru/pages/forum_rules.html
Ответить с цитированием
  #7  
Старый 14.02.2017, 13:49
igr37 igr37 вне форума
Прохожий
 
Регистрация: 01.02.2017
Сообщения: 9
Версия Delphi: Delphi 2
Репутация: 10
По умолчанию

Цитата:
Сообщение от dr. F.I.N.
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;

Спасибо за четкий пример в Delphi 6 работает только проект у меня во 2-ом а там нет WideString. WideChar есть а переменных WideString нет
Ответить с цитированием
  #8  
Старый 14.02.2017, 14:08
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 660
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Цитата:
Сообщение от igr37
Спасибо за четкий пример в Delphi 6 работает только проект у меня во 2-ом а там нет WideString. WideChar есть а переменных WideString нет
К сожалению мне негде экспериментировать. А что мешает перекомпилировать проект под D5/6/7?
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
Ответить с цитированием
  #9  
Старый 14.02.2017, 14:18
igr37 igr37 вне форума
Прохожий
 
Регистрация: 01.02.2017
Сообщения: 9
Версия Delphi: Delphi 2
Репутация: 10
По умолчанию

Цитата:
Сообщение от dr. F.I.N.
К сожалению мне негде экспериментировать. А что мешает перекомпилировать проект под D5/6/7?

очень большой нереально (работает сеть магазинов на нем)
вот решили сделать сайт-магазин и соотв экспорт данных из базы

Последний раз редактировалось igr37, 14.02.2017 в 14:20.
Ответить с цитированием
  #10  
Старый 14.02.2017, 16:20
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 660
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Цитата:
Сообщение от igr37
очень большой нереально (работает сеть магазинов на нем)
вот решили сделать сайт-магазин и соотв экспорт данных из базы
ничего не понял. На чем сеть магазинов работает? На Делфи2? Причем тут сайт? Что тебе мешает "твой" проект скомпилировать не под Д2 а под Д6?
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
Ответить с цитированием
  #11  
Старый 14.02.2017, 17:04
igr37 igr37 вне форума
Прохожий
 
Регистрация: 01.02.2017
Сообщения: 9
Версия Delphi: Delphi 2
Репутация: 10
По умолчанию

Цитата:
Сообщение от dr. F.I.N.
ничего не понял. На чем сеть магазинов работает? На Делфи2? Причем тут сайт? Что тебе мешает "твой" проект скомпилировать не под Д2 а под Д6?

Уже лет 10 наша фирма работает в базе сделанной на Делфи 2 теперь решили еще заняться продажей в инете - на сайте, там и надо знак диаметра

Насчет что мешает перейти на Д6 я уже некоторое время назад пробовал перекомпилировать но ето большой геморой - надо переделывать все печатные формы их много ибо автоматом не переводит на Д6 ибо там еще 1-я версия Quickrep а на Д6 уже 2-я(или 3-я не помню) и они не совместимы в переводе малой кровью. Ну и другие есть мелочи

Последний раз редактировалось igr37, 14.02.2017 в 17:10.
Ответить с цитированием
  #12  
Старый 14.02.2017, 19:59
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, можно поизвращаться для упрощения перехода.
Например, выкинуть все отчеты в отдельный проект и его собирать на D2, а саму программу - на D7 (кстати, не рекомендуется пользоваться D6, т.к. там достаточно много багов; D7 - это та же D6, но с пофикшенными багами).
Кстати, и тут можно так же поступить - написать отдельную DLL на D6/D7 для экспорта и вызывать ее из основной программы. Это есть так критично сделать это минимальными усилиями.
Ответить с цитированием
  #13  
Старый 15.02.2017, 11:00
igr37 igr37 вне форума
Прохожий
 
Регистрация: 01.02.2017
Сообщения: 9
Версия Delphi: Delphi 2
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Кстати, и тут можно так же поступить - написать отдельную DLL на D6/D7 для экспорта и вызывать ее из основной программы. Это есть так критично сделать это минимальными усилиями.

Я так тоже подумал и попробовал сделать но возврат функции должен быть в WideString а его то как раз и нет в Д2

Последний раз редактировалось igr37, 15.02.2017 в 11:53.
Ответить с цитированием
  #14  
Старый 15.02.2017, 11:53
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от igr37
..........
Можно ещё и извратом заняться - скопировать читаемый символ из экселя в клипборд и замещать им в нужный момент
Ответить с цитированием
  #15  
Старый 15.02.2017, 13:09
igr37 igr37 вне форума
Прохожий
 
Регистрация: 01.02.2017
Сообщения: 9
Версия Delphi: Delphi 2
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Можно ещё и извратом заняться - скопировать читаемый символ из экселя в клипборд и замещать им в нужный момент

записываю в клипборд из ячейки Excel потом вставляю в Excel куда надо а там О
что-то я подозреваю что ето невыполнимая миссия
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:32.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter