Кто сталкивался помогите со строкой

 

Есть строка

StringConcatenate(TerminalPath(), "\experts\files\",Filename,".ini")

Но в соответствии с синтаксисом комбинация \" дает просто кавычку. И дальнейшие операторы рассматриваются как текст.
Из справки : Если необходимо ввести в строку двойную кавычку ("), то перед ней надо поставить символ обратной косой черты (\).

Можно между слешем и кавычкой поставить пробел, но будет ли тогда правильно читаться путь? Там ведь добавляется лишний пробел. Полный путь необходим для передачи в Dll. Кто знает помогите пожалуйста.

 
lucka88:

Есть строка

Но в соответствии с синтаксисом комбинация \" дает просто кавычку. И дальнейшие операторы рассматриваются как текст.
Из справки : Если необходимо ввести в строку двойную кавычку ("), то перед ней надо поставить символ обратной косой черты (\).

Можно между слешем и кавычкой поставить пробел, но будет ли тогда правильно читаться путь? Там ведь добавляется лишний пробел. Полный путь необходим для передачи в Dll. Кто знает помогите пожалуйста.

StringConcatenate(TerminalPath(), "\\experts\\files\\", Filename, ".ini");
 

не получается. Вопрос решил следующим образом

StringConcatenate(TerminalPath(), "\experts\files",CharToStr(92),Symbol(),".ini")

Вопрос теперь покруче. Этот путь передается в Dll , Dll строит форму, и форме по событию когда ставится RadioButton вызывается процедура которая пытается записать файл. При этом терминал завершает свою работу.

 

procedure TForm1.WriteIni();
var
  myFile : TextFile;
begin
   AssignFile(myFile,TerminalPath);
   ReWrite(myFile);

   WriteLn(myFile, 'Hello');
   WriteLn(myFile, 'World');

   CloseFile(myFile);
end;
Путь передается в переменную TerminalPath. Где-то читал что текстовая строка на Си заканчивается нулем , пробовал обрезать не получается... Delete(TerminalPath, Length(TerminalPath)-1,1); - вызывает ошибку. Подскажите пожалуйста в чем может быть проблема.
 
lucka88:

не получается. Вопрос решил следующим образом

Понял. Это ошибка отображения строки кода в МЭ4. На самом деле всё работает правильно и компилируется. Это старая ошибка МЭ4.

Для красоты отображения делаю так:

StringConcatenate(TerminalPath(), "\\experts\\files\\",
                  Filename, ".ini");
 
lucka88:

Путь передается в переменную TerminalPath. Где-то читал что текстовая строка на Си заканчивается нулем , пробовал обрезать не получается... Delete(TerminalPath, Length(TerminalPath)-1,1); - вызывает ошибку. Подскажите пожалуйста в чем может быть проблема.

Что за делет такой, откуда?
 

Этот путь передается в Dll , Dll строит форму, и форме по событию когда ставится RadioButton вызывается процедура которая пытается записать файл. Код процедуры в delphi

procedure TForm1.WriteIni();
var
  myFile : TextFile;
begin
   AssignFile(myFile,TerminalPath);
   ReWrite(myFile);

   WriteLn(myFile, 'Hello');
   WriteLn(myFile, 'World');

   CloseFile(myFile);
end;

При этом терминал непредвиденно завершает свою работу.

 
lucka88:

Этот путь передается в Dll , Dll строит форму, и форме по событию когда ставится RadioButton вызывается процедура которая пытается записать файл. Код процедуры в delphi

При этом терминал непредвиденно завершает свою работу.


>> procedure TForm1.WriteIni();

А разьве такое объявление процедуры не нарущает ни чего?

..........

procedure TForm1.FormCreate(Sender: TObject); 

Причина обращения: