Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.09.08;
Скачать: [xml.tar.bz2];

Вниз

Помогите noob у!   Найти похожие ветки 

 
got_the_life   (2003-08-19 18:27) [0]

Всем hi,

недавно я решил попробовать программировать на дельфи, до этого программировал на php и паскале (школа/институт)... купил самоучитель, почитал и... мне не понравилось :(. Назрели вот такие вопросы:

1) Можно ли работать с массивами с неограниченным кол-вом элементов?
2) Как разбить строку состояцую из слов разделённых пробелами и поместить слова в массив?
3) Можно ли работать с хэшами (ассоциативными массивами)?
4) Можно ли вообще избежать обязательного объявления перемеменных?
5) Есть ли в дельфи хоть некое подобие перловых регулярных выражений?
6) Есть ли в дельфи функции аналогичные serialize() и unserialize() из php?
7) offtopic: хотелось бы знать ответы на вышеозначенные вопросы в отношении С++

Заранее спасибо за ответы


 
clickmaker   (2003-08-19 18:31) [1]

мне не понравилось

Это ты зря сказал, парень...


 
pasha_golub   (2003-08-19 18:32) [2]

RTFM & STFW


 
Jeer   (2003-08-19 18:35) [3]

Языки высокого уровня можно дополнительно классифицировать по степени "высокости".
Например, на сегодня, язык сверхвысокого уровня - Пайтон (Phyton).
Паскаль, Си - универсальные языки на которых программист может написать любые нужные ему функции, создать требуемые объекты.


 
Dred2k   (2003-08-19 18:40) [4]

> got_the_life (19.08.03 18:27)

1) Можно. Лишь бы памяти хватило.
2) Написать функцию (поискать готовую).
3) Можно. Напиши и работай. Или ищи либы.
4) Можно. Работай с абстрактной областью памяти.
5) Напиши и используй. Есть либы.
6) ?
7) Все будет также, примерно.

ObjectPascal, в общем случае - язык общего назначения.
Ищешь язык-компилер-панацею на все случаи жизни? Не найдешь. Все хорошо для соответствующих задач. Благо, сейчас есть большой выбор.


 
McLoop   (2003-08-20 02:04) [5]

>1) Можно ли работать с массивами с неограниченным кол-вом элементов?

Неограниченное - это бесконечное? Тогда нет, конечно.
Вообще не налагается ограничений на размер массива. Как правильно было замечено - лишь бы памяти хватило. А память не может быть бесконечной (неограниченной). Да и даже не в памяти дело, а в архитектуре windows. Delphi тут вообще не при чем

>2) Как разбить строку состояцую из слов разделённых пробелами и поместить слова в массив?

ну если

s:string //- строка с пробелами
M:array of string //- динамический массив

то типа того:

var i:word;
...
repeat
i:=pos(" ",s);
if i<>0 then
begin
setlength(M,length(M)+1);
M[high(M)]:=copy(s,1,i-1);
delete(s,1,i);
end;
until i=0;


В результате моего алгоритма будет исковеркан S, ну так можно сделать копию или передать по значению, если функция.

>3) Можно ли работать с хэшами (ассоциативными массивами)?

Наверняка можно. Но я не слышал о таком - поэтому не знаю как

>4) Можно ли вообще избежать обязательного объявления перемеменных?

Что за ересь? Как же без этого?

>5) Есть ли в дельфи хоть некое подобие перловых регулярных выражений?

Приведи пример таких выражений. А еще хорошо бы что они делают

>6) Есть ли в дельфи функции аналогичные serialize() и unserialize() из php?

А что делают эти функции?

>7) offtopic: хотелось бы знать ответы на вышеозначенные вопросы в отношении С++

Так зайди на сайт по C++

>Заранее спасибо за ответы

не за что

Хотя есть совет - почитай книжечки еще раз. Теперь уже внимательно и с разбором примеров


 
Dionys   (2003-08-20 07:01) [6]

> McLoop (20.08.03 02:04) [5]
>> 4) Можно ли вообще избежать обязательного объявления перемеменных?
> Что за ересь? Как же без этого?


почему же ересь?... для Object Pascal - да... но есть множество языков, где объявление переменных не обязательно...

>> 5) Есть ли в дельфи хоть некое подобие перловых регулярных выражений?
> Приведи пример таких выражений. А еще хорошо бы что они делают


они используются для работы со строками:

# $time == 2003-08-20 07:00:34
$time =~ s/^(\d{4})\-(\d{2})\-(\d{2})\s(\d{2}:\d{2}:\d{2})$/$4 $3.$2.$1/;
# $time == 07:00:34 20.08.2003

здесь последовательность

^(\d{4})\-(\d{2})\-(\d{2})\s(\d{2}:\d{2}:\d{2})$

и есть регулярное выражение...


 
АлексейК   (2003-08-20 09:19) [7]

>> 5) Есть ли в дельфи хоть некое подобие перловых регулярных выражений?
> Приведи пример таких выражений. А еще хорошо бы что они делают

они используются для работы со строками:

# $time == 2003-08-20 07:00:34
$time =~ s/^(\d{4})\-(\d{2})\-(\d{2})\s(\d{2}:\d{2}:\d{2})$/$4 $3.$2.$1/;
# $time == 07:00:34 20.08.2003

Что в данном случае выполняется, изменение отображения формата даты-времени или переворачивается строка?


 
Calm   (2003-08-20 09:39) [8]

1. Можно.
2. Слегка напряг пальцы для набора кода или вызова процедур из сторонних библиотек.
3. Можно. D6 поддерживает. Для более ранних - библиотеки.
4. Нельзя. Так задумано. Или работай с абстрактной памятью :))))))))
5. Есть либы, как уже указали. Легко находится на любом сайте компонент.
6. -


 
Palladin   (2003-08-20 10:10) [9]

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


 
Romkin   (2003-08-20 10:27) [10]

Много сказано. В общих чертах:
1. Можно. Но общая длина массива ограничена 2Гб (если не ошибаюсь) Думаю, хватит :) Для строк - то же ограничение
2. Извините, функции есть. Я часто заменяю пробелы на перевод строки и пихаю это в TStringList. Встроенного оператора, разумеется, нет.
3. В VCL, насколько помню, хэшей нет. Хотя бы потому, что функцию хеширования нужно подбирать в каждом случае свою.
4. Любое используемое имя должно быть объявлено до его использования. И это правильно, я еще помню, сколько мучился при отладке в Бейсике из-за простых опечаток.
5. Компонент найти можно, так - нету
6. Не помню, что это такое, смутно что-то всплывает...
7. С++ и Delphi языки примерно одного уровня, могу сказать одно: если PHP & Perl настроены на обработку строк, то эти языки - общего назначения, если чего-то не хватает - всегда можно написать, и будет работать


 
nikkie   (2003-08-20 11:16) [11]

скажите мне кто такой noob... ассоциации исключительно с noop :)
хотя я, конечно, догадываюсь, что имелось в виду ;)


 
Anatoly Podgoretsky   (2003-08-20 13:04) [12]

1) Нет, поскольку это требует неограниченного количество ресурсов
2) CommaText
поместить слова в массив?
3) Можно
4) Нет и одного объявления недостаточно, переменная должна быть объявлена до ссылки не нее
5) Нет, ближайшее MatchesMask, но это не то, но есть много внещних библиотек, вообще всемирный репозитарий очень широк
6) Не знаю
7) Это к тем кто знает этот язык


 
McLoop   (2003-08-20 13:12) [13]

Можно. Но общая длина массива ограничена 2Гб

Это не длина массива ограничена 2Гб. Это вообще ограничение на память, выделенную приложению операционкой (windows).
Вообще ВАП процесса ограничена 4Гб, но с учетом всего того, что туда загружается, вероятно и остается места 2Гб

Теперь у меня два вопроса. Что все таки такое хэши(ассоциативные массивы)?

И что делают функции serialize() и unserialize() из php?


 
McLoop   (2003-08-20 13:15) [14]

А... и еще! Кто мне приведет пример того, что не обязательно объявлять переменную!!! Я вообще этоого не понимаю...


 
Карелин Артем   (2003-08-20 13:15) [15]

4) With TSomeThing.Create do
begin
// Что-то делаем
// И при этом забиваем на переменные
end;


 
Ketmar   (2003-08-20 13:20) [16]

ВАП ограничена 3-мя с хвостиком мб (по крайней мере в 9x/Me). или даже 2-мя. всё, что ниже -- это конура, в которой система с драйверами живёт.


 
ПИТОН   (2003-08-20 14:42) [17]

4) Можно ли вообще избежать обязательного объявления перемеменных?
Нельзя и лучше не делать. Сейчас около часа искал ошибку. Оказалось не передал в функцию 1 параметр. Delphi бы ругнулся, а PHP ничего, как так и надо.


 
McLoop   (2003-08-20 16:46) [18]

>With TSomeThing.Create

как это With согласуется с конструктором? Ничего не понял

ВАП ограничена 3-мя с хвостиком мб

Ketmar, исправляйся :)

всё, что ниже -- это конура, в которой система с драйверами живёт

А я думал библиотеки обязательные по высшим адресам грузятся


 
McLoop   (2003-08-20 16:47) [19]

>With TSomeThing.Create

как это With согласуется с конструктором? Ничего не понял

ВАП ограничена 3-мя с хвостиком мб

Ketmar, исправляйся :)

всё, что ниже -- это конура, в которой система с драйверами живёт

А я думал библиотеки обязательные по высшим адресам грузятся



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2003.09.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.009 c
7-24728
bkv
2003-06-25 12:49
2003.09.08
Вызов функций MAPI из сервиса.


1-24447
AHTOH
2003-08-24 22:08
2003.09.08
создание неизвестного заранее колва объектов


3-24374
WASYA
2003-08-15 19:12
2003.09.08
TDBText


4-24733
Harry
2003-07-10 13:35
2003.09.08
Убрать системные сообщения при ошибке копирования


11-24404
zlx
2002-12-19 12:07
2003.09.08
Неспешно ищю информацию про WinCE





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский