Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.07.20;
Скачать: [xml.tar.bz2];

Вниз

Русские идентификаторы в Delphi for .Net (BDS 2006)   Найти похожие ветки 

 
nata   (2008-06-20 16:58) [0]

Мне НЕОБХОДИМО использовать русские буквы в идентификаторах в Delphi for .Net (BDS 2006).
Например,

procedure TWinForm.Кнопка_Click(sender: System.Object; e: System.EventArgs);
var
{$I "D:\Мои документы\Список_переменных";} : string;
begin
П_Переменная:="natador";
TextBox1.Text:=П_Переменная;
end;

В файле Список_переменных.pas написано имя переменной П_Переменная (для меня важно подключение такого файла).
При первой компиляции имееются сообщения об ошибках:

[Pascal Error] Список_переменных.pas(1): E2038 Illegal character in input file: "П" (#$1F)
[Pascal Error] Список_переменных.pas(1): E2038 Illegal character in input file: "я" (#$4F)
[Pascal Error] WinForm.pas(108): E2003 Undeclared identifier: " П_Переменная"
[Pascal Fatal Error] Project1.dpr(15): F2063 Could not compile used unit "WinForm.pas"

При повторной компиляции ошибок нет и все работает хорошо.
Как этого избежать, т.к. при подключении многих файлов, компиляция мучительно долгая.


 
clickmaker ©   (2008-06-20 17:00) [1]

> Мне НЕОБХОДИМО использовать русские буквы

почему?


 
Dennis I. Komarov ©   (2008-06-20 17:03) [2]

чуръ меня, чуръ... :)


 
Palladin ©   (2008-06-20 17:05) [3]


> Мне НЕОБХОДИМО использовать русские буквы

аффигеть, серьезное ПО... ну транслит, в принципе, не запрещен :)


 
nata   (2008-06-20 17:08) [4]

Ребята, пожалуйста, если не знаете чем помочь, не пишите чушь.
Покритиковать кого я и сама могу.


 
stas ©   (2008-06-20 17:11) [5]

Мне НЕОБХОДИМО использовать русские буквы...
???
А что английской раскладки нет?

Совет:
Edit->replace
с:   русские буквы
на: English


 
McSimm ©   (2008-06-20 17:18) [6]

Поведение компилятора действителтьно странное.
Но странность задачи затмевает.

Цель не могу себе представить, но почему-то уверен, что ее можно добиться и другим способом, без инклуда.


 
Dennis I. Komarov ©   (2008-06-20 17:20) [7]

> [4] nata   (20.06.08 17:08)

Почему не знаем? Знаем. Только:
1. ответь на [1]
2. не понравиться...


 
McSimm ©   (2008-06-20 17:22) [8]


> Почему не знаем? Знаем.

Поделитесь пожалуйста. Мне тоже очень интересно, почему ошибка происходит при первой компиляции, а повторная проходит нормально.


 
Правильный-Вася   (2008-06-20 17:22) [9]

явно пишется расширение языка для протых юзеров

начало
 переменная:=константа
конец


 
nata   (2008-06-20 17:26) [10]


> Почему не знаем? Знаем.


Поделитесь если знаете, пример просто иллюстративный, если вы все еще задумываетесь над использованием данного "программного продукта". Если будет все работать на 3-х строках, будет работать и в реальной программе.
А необходимо, т.к. файл подключения генерируется автоматически на русском языке, заниматься перекодировкой неблагодарное дело, если языком предусмотрена возможность использования символов Unicode.


 
McSimm ©   (2008-06-20 17:29) [11]

Почему неблагодарное? Во всяком случае решить проблему перекодировкой можно, и не так уж и сложно.

но и понять такое поведение тоже было бы интересно.


 
Правильный-Вася   (2008-06-20 17:52) [12]


> если языком предусмотрена возможность использования символов Unicode.

тогда почему String, а не WideString ?


 
McSimm ©   (2008-06-20 17:54) [13]


> тогда почему String, а не WideString ?

А если Integer?

Имя переменной и его содержимое как связаны ?


 
nata   (2008-06-20 17:58) [14]


> McSimm ©   (20.06.08 17:54) [13]
>
Тип не имеет значения, может быть любой, как и значение переменной, это просто иллюстрация ошибок.


 
McSimm ©   (2008-06-20 18:03) [15]


> nata   (20.06.08 17:58) [14]

да, это я понимаю.

Может все-таки стоит обработать генерируемый текст ? Проблему решит, а перекодировщик делается за несколько минут.
Например заменить unicode символы их 16ми кодами: var_<hex-codes>


 
Правильный-Вася   (2008-06-20 18:06) [16]

может, лучше в годегир написать багрепорт?
или хотя бы патчи поставить?


 
nata   (2008-06-20 18:07) [17]

спасибо за предложение, но мой шеф категорически настоен на русские имена, будем компилировать :-)


 
Dennis I. Komarov ©   (2008-06-20 18:24) [18]

> [10] nata   (20.06.08 17:26)

Надо будет переписать компилятор :) Расвели тут 1С, понимаешь.


> Поделитесь пожалуйста. Мне тоже очень интересно, почему
> ошибка происходит при первой компиляции, а повторная проходит
> нормально.

Чего,  правда? У меня нету для .NET. Мда, дожили....


 
Игорь Шевченко ©   (2008-06-20 20:57) [19]


> {$I "D:\Мои документы\Список_переменных";} : string;


а зачем точка с запятой после кавычки ?


 
Anatoly Podgoretsky ©   (2008-06-20 20:58) [20]

> nata  (20.06.2008 18:07:17)  [17]

У Борланда в отличии от Микрософт очень напряженые отношения с неанглийскими символами, если по рабоче крестьянски - плохо у них выходит. Чего стоит наличие буквы Я в комментариях dpr файла. И тут видимо в лужу сели. А вот у Микрософта еще в 1993 году был с этим порядок, полный порядок.
Вот так Борланд на корню гноит национальные кадры.


 
Игорь Шевченко ©   (2008-06-20 21:02) [21]

TurboDelphi 2006:

varnames.inc
 МояПеременная1, МояПеременная2, МояПеременная3

unit main;

interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure ПоказатьСообщение (Сообщение: string);
begin
 ShowMessage(Сообщение);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
{$I varnames.inc}
 : string;
begin
 МояПеременная1 := "Foo ";
 МояПеременная2 := "Bar ";
 МояПеременная3 := "Baz ";
 ПоказатьСообщение(МояПеременная1+МояПеременная2+МояПеременная3);
end;

end.


 
Игорь Шевченко ©   (2008-06-20 21:03) [22]

Все компилируется и даже работает. Единственно - набирать неудобно, все время промеж раскладками переключаться да и редактор в IDE с русскими буквами не дружит


 
Dummy   (2008-06-20 21:04) [23]


> мой шеф категорически настоен на русские имена


Может проще сменить щефа? по-моему он - идиот.


 
Palladin ©   (2008-06-20 21:11) [24]

шеф, в том, что он идиот, - не виноват. а вот всяким натам осталось грамотно продемонстрировать шефу на несовместимость желалок и возможностей приобретенного продукта. пусть сам решает что ему надо...


 
Игорь Шевченко ©   (2008-06-20 21:13) [25]

Впрочем, гораздо интереснее так:

unit main;

interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 Строка = string;
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure ПоказатьСообщение (Сообщение: Строка);
begin
 ShowMessage(Сообщение);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 &#32993;&#38182;&#28059;, &#29579;&#23696;&#23665;, &#20196;&#32908;&#32932;&#32509;&#25918;&#29645;&#29664;&#33324;&#20928;&#30333; : Строка;
begin
 &#20196;&#32908;&#32932;&#32509;&#25918;&#29645;&#29664;&#33324;&#20928;&#30333; := "Foo ";
 &#29579;&#23696;&#23665; := "Baz ";
 &#32993;&#38182;&#28059; := "Bar";
 ПоказатьСообщение(&#20196;&#32908;&#32932;&#32509;&#25918;&#29645;&#29664;&#3332 4;&#20928;&#30333;+&#29579;&#23696;&#23665;+&#32993;&#38182;&#28059;);
end;

end.


 
Anatoly Podgoretsky ©   (2008-06-20 22:03) [26]

> Игорь Шевченко  (20.06.2008 21:13:25)  [25]

Я стесняюсь спросить, а что там написано?


 
Anatoly Podgoretsky ©   (2008-06-20 22:04) [27]

Основенно здесь &#20196;&#32908;&#32932;&#32509;&#25918;&#29645;&#29664;&#33324;&#20928;&#30333;


 
Игорь Шевченко ©   (2008-06-20 22:04) [28]

Anatoly Podgoretsky ©   (20.06.08 22:03) [26]

Все имена переменных - цензурные :)


 
Anatoly Podgoretsky ©   (2008-06-20 23:24) [29]

> Игорь Шевченко  (20.06.2008 22:04:28)  [28]

Меня интересует, что за длинное имя идентификатора, я ведь в курсе, что каждый значок это одно слово, это наверно немецкий идентификатор и для уменьшения физического размера записан иерофглифами. Модно ли узнать каждое слово?


 
Игорь Шевченко ©   (2008-06-20 23:27) [30]


> Модно ли узнать каждое слово?


у каждого программиста свои секреты :)


 
nata   (2008-06-20 23:41) [31]

ой ребята, вам явно не хватает общения, а проблема все еще имеется. TurboDelphi 2006 мне не подходит. И впервые меня называют "всякая НАТА".


 
Игорь Шевченко ©   (2008-06-20 23:57) [32]

nata   (20.06.08 23:41) [31]

и все-таки, зачем точка с запятой после имени файла, который по Include включается ?


 
nata   (2008-06-20 23:58) [33]

можите ее убрать


 
Игорь Шевченко ©   (2008-06-21 00:01) [34]

nata   (20.06.08 23:58) [33]

Да у меня вообще-то и проблемы нет (как и BDS2006, впрочем), так что убирать я ее не буду. С вашего позволения.


 
Anatoly Podgoretsky ©   (2008-06-21 00:05) [35]

> Игорь Шевченко  (20.06.2008 23:27:30)  [30]

Так и не удалось на слабо взять.


 
Anatoly Podgoretsky ©   (2008-06-21 00:07) [36]

> nata  (20.06.2008 23:41:31)  [31]

Что бы была не всякая - начинать надо с фото.


 
Германн ©   (2008-06-21 01:16) [37]


> Игорь Шевченко ©   (20.06.08 21:13) [25]

Сегодня днём там были иероглифы. Сейчас вопросительные знаки. Совсем не красиво :(


 
Leonid Troyanovsky ©   (2008-06-21 11:20) [38]


> Anatoly Podgoretsky ©   (20.06.08 22:04) [27]

> Основенно здесь &#20196;&#32908;&#32932;&#32509;&#25918;&#29645;&#29664;&#33324;&#20928;&#30333;

Кожа расцветает, как жемчуг из незамутненного источника?

--
Regards, LVT.


 
clickmaker ©   (2008-06-23 12:37) [39]

> мой шеф категорически настоен на русские имена

прямо как в монологе Задорнова: "могём или не могём?" )



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.07.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.54 MB
Время: 0.038 c
11-1191870302
LazyBob
2007-10-08 23:05
2008.07.20
List View непойму никак..


2-1214072499
Вован
2008-06-21 22:21
2008.07.20
Нужно открыть окно чужой минимизированной программы


2-1213614223
Рустам1
2008-06-16 15:03
2008.07.20
delete from


15-1212403397
Sergey_
2008-06-02 14:43
2008.07.20
Требуется модуль.


15-1212669800
андр.
2008-06-05 16:43
2008.07.20
MS SQL 2000





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский