uses dos, strings;
var p:PChar;
<...>
StrPCopy(p,GetEnv('что ты тут укажешь твое дело'));
<...>
чёнибудь покрупнее STRING'а
:confused: Люди есть в паскале ченибудь покрупнее STRING'а, т.е. чтоб болше чем 255 символов влезало????
смотря что вам нужно
в смысле какой тип нужно использовать чтоб присвоить строку из 370 знаков?? или как иначе сделать??
либо использовать просто массив символов(придется самим реализовать все для работы) но мне кажется что можно найти более элегантное решение проблемы чем такие массивы
Цитата: 00mike00
в смысле какой тип нужно использовать чтоб присвоить строку из 370 знаков??
TP 6.0 и выше - PChar.
Цитата: Freeman
TP 6.0 и выше - PChar.
А вот как тогда к переменной типа РСhar присвоить значение функции GetEnv() (Unit Dos) ???
Я бы посоветовал делать массив типа чар, посидеть недельку понаписывать функции(в отдельный модуль и потом горя небудет так как длина почти небудет ограничена и если что нетак можеш всегда переписать)
подключи модуль strings и используй StrPCopy, будет примерно так:
Код:
Цитата: 00mike00
А вот как тогда к переменной типа РСhar присвоить значение функции GetEnv() (Unit Dos) ???
Если GetEnv должен вернуть строку длиннее 255 символов, то стандартными средствами - никак. Придётся брать PChar и расписывать обращение к DOS на ассемблере вручную.
Цитата: s-haman
посидеть недельку понаписывать функции(в отдельный модуль
Вот и изобретай велосипеды, раз нравится.
Цитата: s-haman
длина почти небудет ограничена
Ещё как будет - это DOS. Ограничение - 32 кб на строку (кажется). Или 64, не помню уже.
а иначе "to big structure" )
2 в 16 - 64k сегмент
Цитата: nilbog
а иначе "to big structure" )
2 в 16 - 64k сегмент
2 в 16 - 64k сегмент
А если Integer использовать для указания длины? Он ведь знаковый.
так что array[integer] не пройдет тоже
[0..65534] не 35 уже должно работать
хотя это ужас конечно
Цитата: nilbog
ну integer это тот же word по размеру
Я к тому, что длина не может быть отрицательной, и ограничение в 32К напрашивается само собой.
длина то не может быть отрицательной а индексы массива вполне
array[-n..n] of char допустимо при n>0
а длина определится как кол-во эл-ов
64к это все таки из-за сегментирования памяти
ps по сабжу в общем это не важно-мы от темы отходим такие массивы не стоит использовать
если заранее не знаем размер то динамические структуры будут решением