Работа со строками

___neznayka____
Дата: 30.11.2007 12:52:40
Folder имеет тип string и передается как параметр в метод
l:Integer;
  c:string;
  Path:PAnsiChar;
l:=Length(Folder);
//c:=Copy(Folder,l,1);
StrPCopy(Path,Folder);
так все работает
но стоит раскоментарить
c:=Copy(Folder,l,1);
(тутачки надо получить последний символ строки)
в строке
StrPCopy(Path,Folder);
происходит исключение Ацесс Виолэйшн
в чем грабли?
Dimitry Sibiryakov
Дата: 30.11.2007 12:57:22

___neznayka____
в чем грабли?

Разбуди Пушкина. Он у нас ответственен за выделение памяти.

Posted via ActualForum NNTP Server 1.4

SQLap
Дата: 30.11.2007 12:59:24
Чует мое сердце, проблема в L
Naf
Дата: 30.11.2007 13:02:13
ошибка в
c:=Copy(Folder,l,1);
просто дебагер ставит след. строку текущей
по-моему надо писать
c:=Copy(Folder,l-1,1);
Anatoly Podgoretsky
Дата: 30.11.2007 13:19:26
___neznayka____

//c:=Copy(Folder,l,1);
StrPCopy(Path,Folder);[/src]так все работает
но стоит раскоментарить

А ты не раскомментируй, смысла в этой команде нет, а AV огребешь
___neznayka__
Дата: 30.11.2007 16:27:27
Работаю с API, соответственно нужен PAnsiChar.
Собсна нужно корректно перевести string в PAnsiChar.
pc:PAnsiChar;
str:string;
Если напрямую присваиваю :
pc:='c:\inetpub\*.*';
все работает.
А если так :
str:='c:\inetpub\*.*';
pc:=StrNew(pc);
pc:=StrPCopy(pc,str);
этот код вроде работает и вроде даже копирует str в pc
но дальше в проге начинает происходить неладное
начинают выскакивать access violation в самых неожиданных местах
что я делаю не так?
приведите пример кода плиз