Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.07.2011, 19:46   #31
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
Вопрос

я что-то не понял как вы умудрились тему так растянуть пока меня не было Проверял мой вариант в посте №5
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Старый 23.07.2011, 19:56   #32
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Он хотел свой вариант добить, если бы сразу воспользовался другой функцией тему бы закрыли.

Цитата:
function win():string;
var a:string;
begin
SetLength(a, 255);
GetWindowsDirectory(PChar(a), 255);
Result:=a;
end;
Вся проблема его варианта в отображенной в Edit2 строке
Edit2.text:= win()+'\proga.exe';
C:\Windows#0 все что за символом #0 неотобразилось в Edit2 поэтому +'\proga.exe' неотобразилось

Вот и пришлось разъяснять человеку в чем беда)))

Последний раз редактировалось Aliens_wolfs; 23.07.2011 в 20:01.
Aliens_wolfs вне форума Ответить с цитированием
Старый 23.07.2011, 20:25   #33
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Char может принимать только 255 символов
Char это вообще один символ.
а строка может принимать значение до 2ГБ размером.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.07.2011, 20:36   #34
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
Хорошо

Присоединяюсь)
Aliens_wolfs вне форума Ответить с цитированием
Старый 23.07.2011, 23:20   #35
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Пепел Феникса не ы ле рекомендовал мне книгу руководство разработчика, получаеться книга ГАВНО!? так как там описано было то и говорю... там функция была эта написана которую я писал и до этого ей пользовался а тут ступор встал... из книги я многое понял вот только вопрос сразу встало правильно ли было там все написано?
cargo29 вне форума Ответить с цитированием
Старый 23.07.2011, 23:23   #36
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Все книги хорошо. Просто вы либо не прочитали её, либо она для вас сложна.
Человек_Борща вне форума Ответить с цитированием
Старый 23.07.2011, 23:40   #37
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

1)либо книга не по Делфи(в паскале строки имели длину 255 макс)
2)либо автор говорил про ShortString(аналог паскальных)
3)либо автор ****к ибо перепутал строки паскаля со строками Делфи.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 24.07.2011, 00:03   #38
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Если вы пример из книги взяли, то автор от балды написал непроверяя его, так бывает.

Насчет максимального числа символов:
String его длина да 255 символов но это когда статически задаешь s: string[255]; s: string[256];- уже будет ошибка.
SetLength(s, 300) можно задать и больше когда в S: String; не определен размер.
И Вообще автор имел ввиду наверное 255 символов которые строковый параметр способен отображать это символы от #1 - #255


Ошибка функции win
Edit2.text:= win + '\proga.exe';
C:\Windows#0#0#0#0#0 все что за символом #0 не отображается в строке, поэтому в Edit2 строка '\proga.exe' не отобразилась.
У вас строка win получила размер в 255 символов после полученного текста остальные идут вот эти символы #0#0#0 т.е. необрезанная по тексту строка


исправить можно так:
Код:
 function win():string;
begin
//Задаем большой размер
 SetLength(result, 255);
//Затем из этого размера делаем размер который извлекается из GetWindowsDirectory, тогда размер становится нужным по строке
 SetLength(result, GetWindowsDirectory(PChar(result), 255));
end;

Последний раз редактировалось Aliens_wolfs; 24.07.2011 в 01:25.
Aliens_wolfs вне форума Ответить с цитированием
Старый 24.07.2011, 01:49   #39
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Книга по делфи и советовал ее сам лично Пепел Феникса там идет по 6 делфи, а с функцие разобрался там кое что подправил и все... )))
cargo29 вне форума Ответить с цитированием
Старый 24.07.2011, 02:35   #40
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
советовал ее сам лично Пепел Феникса там идет по 6 делфи
я чтото советовал по Делфи
я ни одной книги не читал-то, по Делфи по крайней мере.

-------------UPDATE-------------
Библия чтоль?
дык я не читал, просто не раз говорили что хорошая.

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


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тестовый файл. Найти сумму всех чисел, входящих в этот файл. (Паскаль) Homeros Помощь студентам 1 26.01.2011 14:05
Типизированный файл с натуральными числами. Числа, встречающиеся 1 раз переписать в другой файл [Паскаль] mifomen Помощь студентам 7 16.12.2010 22:00
WinInet загрузить файл во временной файл , использовать, потом удалить Человек_Борща Работа с сетью в Delphi 5 03.08.2010 13:46
C++. Прочитать файл и вывести в другой файл каждую N-ую строку Straiker Помощь студентам 3 15.12.2009 05:49
Ссылка на файл из текущей папки! Сбор инфы в один файл! mephist Microsoft Office Excel 11 10.07.2009 13:51