Где "Не найден путь??"

otistarda
Дата: 03.12.2007 17:41:27
В одной процедуре они..
  with TIniFile.Create(ChangeFileExt(ParamStr(0),'.dsn')) do begin
    try
      fn:= ReadString('MAIN','OutFile','C:\TEMP\dq.dat');
      WriteLn(fn);
    finally
      Free;
    end;//try
  end;//with TIniFile.Create(ChangeFileExt(ParamStr(0),'.dsn')) do begin

  sl:= TStringList.Create;
  dsetDQ.First;
  try
    while not dsetDQ.Eof do begin
      s:= Format('%s|%s|%s',[dsetDQ.FieldByName('TCode').AsString,
                             dsetDQ.FieldByName('TPerc').AsString,
                             dsetDQ.FieldByName('TQuant').AsString]);
      s:= StringReplace(s,ListSep,DecSep,[rfReplaceAll,rfIgnoreCase]);
      s:= StringReplace(s,'|',ListSep,[rfReplaceAll,rfIgnoreCase]);
      sl.Add(s);
      dsetDQ.Next;
    end;//while not dsetDQ.Eof do begin
    sl.SaveToFile(fn);
  finally
    FreeAndNil(sl);
  end;//try
Консоль, под ADO. Пишет "не найден путь" >> в консоль.
Это в где? не найден путь?
Альт
Дата: 03.12.2007 20:06:57
мне особенно понравился стиль на самом деле... забавно.... завершать блоки полным началом... не скучно живете новосибирцы... так что выдает:
WriteLn(fn);
пишет... видимо... тут:
sl.SaveToFile(fn);
откройте для себя FileMon и отладчик....
otistarda
Дата: 04.12.2007 14:05:20
А как будет правильней?
otistarda
Дата: 04.12.2007 14:13:05
Ну, помогите человеку в верхним лесотехническим :)
Anatoly Podgoretsky
Дата: 04.12.2007 14:13:20
А правильнее узнать, куда же ты пишешь
ShowMessage(fn);
Альт
Дата: 04.12.2007 14:38:37
ну простой пример...

program Project1;

{$APPTYPE CONSOLE}

uses
  Classes,
  SysUtils;

procedure Main;
var
  pList : TStringList;
begin
  pList := TStringList.Create;
  try
    pList.SaveToFile( 'c:\con\test.txt' );
  finally
    FreeAndNil( pList );
  end;
end;

begin
  Main;
end.


C:\temp\cons>Project1.exe
Exception EFCreateError in module Project1.exe at 00011D82.
Cannot create file "c:\con\test.txt". The system cannot find the path specified.

C:\temp\cons>

Вы так и не ответили на вопрос... что выводит WriteLn (OutFile в блоке MAIN есть? каталог C:\TEMP\ на случай отсутствия OutFile существует?)

По поводу стиля... он применим только на блоках больше рабочего экрана... и то... в основном... ленятся и описание сводят до "end; //with TIniFile", а когда такая радость в районе пяти строк, то конечно сильно бросается в глаза избыточность
Anatoly Podgoretsky
Дата: 04.12.2007 18:22:39
На простой пример, простой ответ CON это зарезервированое имя.
Альт
Дата: 04.12.2007 18:27:43
Anatoly Podgoretsky
На простой пример, простой ответ CON это зарезервированое имя.

Анатолий, я con ввел специально... для наглядности, чтобы смоделировать ситуацию исключения при записи по неверному пути... не более того... )
Anatoly Podgoretsky
Дата: 04.12.2007 18:31:36
Понятно, а автор саботирует вопросы, до сих пор не ответил куда выводит.
otistarda
Дата: 05.12.2007 07:37:50
Анатолий, я не сабботирую, просто у нас в это время (наверное) была ночь :)
Вывожу в файл который берется из ini, который д.б. определен как "fn".
Все Wrietlnы для отладки прикручены (кстати вместо ShowMessage).