- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
procedure WriteString(ST: Ansistring);
var
leng: dword;
I: dword;
ss: Ansistring;
stk: Ansistring;
begin
leng := Length(ST);
for I := 1 to leng do
begin
ss := Copy(ST, I, 1);
stk := stk + ss;
end;
filestream1.Write(stk[1], Length(stk));
end;
21 век на дворе, юникод кругом, и только дельфины продолжают грызть кактус...
> filestream1 := TfileStream.Create('file.dat', fmcreate);
> WriteString('bla bla bla');
> filestream1.Destroy;
Инкапсуляция на высоте :)
> Строки 8-13
Интересно, а зачем автор посимвольно копирует строку перед записью в файл? Он как-то этот момент пояснил?
Гы, а он логичен. А мы то и не заметили, что он строку собирает :)
Тут вопрос в другом - нахрена строку разбирать на символы и собирать из нее еще одну точно такую же? :) Почему бы просто не записать первую, которая st, без всех этих махинаций?
stk := stk + ss;
много же в этом смысла
Уж либо все в один метод, либо поток создается при первом обращении и диспозится в конце работы модуля
Хрен бы с ним с созданием потока, ты посмотри в какую переменную его нужно помещать, чтобы WriteString нормально отработал... Чудеса инкапсуляции ;)
это не только инкапсуляция, это еще и высокое зацепление. )
Хотя да, ооп и делфи...
Да вполне адекватное там ООП, просто большинство дельфинов его не осилило, и никогда не сможет запилить свой класс (за исключением автосгенеренных TForm1, TForm2 и т.п.), что уж говорить о своем компоненте... Многие даже Form1 и Button1 во что-то более вменяемое не догадываются переименовать...
Так что правильней говорить так - ООП и дельфины.
Стрим - не поток в буквальном смысле, к потокам вообще никакого отношения не имеет. Это обертка над файловыми функциями винды, такими, как CreateFile/SetFilePointer, и т.д.
Как это не имеет? Это самый настоящий поток ввода-вывода, аля stream (не путать с потоком исполнения, нитью, аля thread).
раз уж Вы здесь, посоветуйте, как сделать так, чтобы регулярка не хватала токены, отдаленно похожие на прокси:
333.666.222.555:8080
я делаю так:
\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{1, 5}
Скобки захватят значения. Как их достать со стороны делфи - смотри в документации к библиотеке с регулярками, которую юзаешь. Что-нибудь в духе r.group(1).
Ну а дальше тупо TryStrToInt и проверка на 0..255 и 0..65535. Вот и все.
Вот моя говнопрога на хаскеле, которая генерит такое регулярки, ибо руками писать их совсем уж влом: http://govnokod.ru/13674.
Для 0..255 регулярка будет [0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]
Для 0..65535 будет [0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]
Я думаю после этого тебе не захочется проверять число на попадание в диапазон при помощи регулярок :)
Совсем напрасно. Как только одолею - только на них и буду опираться при парсинге. Спасибо.
Не стоит ;) Во многих случаях регулярки не самый лучший инструмент.
Например JSON и XML и HTML лучше разбирать готовыми парсерами, чем писать свой велосипед. По крайней мере от кучи граблей эти парсеры тебя уберегут.
А для достаточно сложных грамматик (например если ты пилишь свой скриптовый язык) есть генераторы парсеров типа flex/bison, antlr и им подобных...
казалось бы причем тут царь...
Убогое говно для калькулятора
лучше ли заюзать какой-нибудь lua
Конечно лучше.
Но вдруг очень-очень надо написать свой язык или извратный формат конфига? :)
У вас в говноделфях неужели нет функции strtoip?
Раз уже затронули тему регулярок: знает ли кто редактор регекспов, который \d{1,3}\. показывает как \d{1,3}. , т.е. подсвечивает синтаксис и убирает экранирующие бекслеши, а то синдром зубочистки заёбует.
>> strtoip
Что должна делать эта функция?
Готовой нет, но можно попытаться запилить свою. Кстати, первый раз вижу, чтобы IP выводили в число. Обычно отдельный тип пишут.
Nuclear launch detected.
>Готовой нет
А если найду? Сходу нашел какой-то модуль, который проверяет ipv4 на валидность.
(
Заберите этого мудака.
(_O_)
2.Я в одиночку без преподавателя освоил то, чему годами учат в вузах - в чем выражается мое нежелание учиться?
Уебанство - это что, плохие манеры? Лично я считаю, что уебанство - это постинг разного дерьма с анонимной учетки, обусловленный боязнью необходимости ответить за свои слова и упрекание других в том, чего ты не стоишь сам.
Нежелание слушать людей, которые знают больше тебя. Ебись тогда сам, что я могу сказать.
если не знаешь - зачем говоришь
обычно в "вузах" не тратят больше 2 семестров на один и тот же язык, и более того, просто используют выбранный язык как иллюстрацию неких технологий - т.е. не учат программировать например на дельфи, а иллюстрируют формошлепство, заодно дают основы ООП
т.к. не больше 2 семестров, это значит 1 пара лекции и 1 пара лабы в неделю максимум - т.е. суммарно 2*16*2*1.5 = 96 астрономических часов
при самостоятельном изучении на дому это сраных 2 недели
продолжаешь гордиться?
более того, когда у нас преподавали алгоритмы можно было сдавать на всем, что в уневере компилилось. Конечно были предпочтения типа делфи и шарпа, но и на руби можно было сдавать, никто не выгонял за это. А ответ прост - основная часть программирования - это осознание тонкостей задачи и проектировка решения.
Написать код по блок схеме каждый дурак сможет.
>>т.к. не больше 2 семестров, это значит 1 пара лекции и 1 пара лабы в неделю максимум - т.е. суммарно 2*16*2*1.5 = 96 астрономических часов
Из них ты приходишь на пары через раз, на лабы вообще не ходишь - ибо а че там делать? Дали техзадание - пиши код. В итоге такие предметы как методы оптимизации, на которые я приходил только по праздникам, я учил за 3-4 дня, после этого 2-3 дня писал лабы и сдавал на пять. И не только я так делал.
У универа на самом деле 2 задачи
1. положить какие то основы и выкинуть дребедень.
2 научить быстро и качественно осваивать новый материал
А учить хоткеям в VS и 1000 способам написать синглтон тебя никто не будет
(большая часть адресована стертору и пустоте)
Кстати, писать лабы - бесполезное занятие. Большинство даже не въезжают, зачем они их вообще пишут, не говоря уже о понимании поставленной задачи.
Ты не поверишь... Но очень часто в одиночку лучше.
Толковых и опытных преподов информатики, которые не засирают тебе мозг морально устаревшей и кривой хуйней, а разбираются в теме и могут ответить на любой твой вопрос, не так уж много, особенно в провинции...
В добавок к этому, если препод не сумеет заинтересовать группу, то толком послушать лекцию тебе не удастся, ну разве что ты будешь сидеть на первой парте...
А еще в вузе обязательно встретится куча предметов, которые, скорее всего, тебя не особо заинтересуют. Но вымотают нервы на зачетах и потратят твое время...
Поэтому самообразование в любом случае очень важно (и даже подразумевается учебной программой).
> Кстати, писать лабы - бесполезное занятие.
Ну почему, надо же на чем-то экспу набивать. Не все же могут придумать себе интересную задачку самостоятельно. А чем больше ты думаешь, проектируешь, кодишь - тем лучше.
Ну тогда мне сказочно повезло - у меня очень хорошие преподы были - всегда слушал с удовольствием, всегда грамотно отвечали на мои вопросы и отправляли на хорошие источники. Ну это в основном физика-вышмат-кодинг. Хотя многим эти преподы не нравились
Препод по никсам вообще добровольно провел курсы по erland, мне понравилось
Рашка-парашка? Спрошу еще раз, это в СНГ везде так?
Да и вообще код писать -бесполезное занятие. Все проги давно написаны
Это где так учат? У меня было:
Паскаль - 252 часа
С - 198 часов
Жаба - 210 часов
Все по одному семестру.
252/16 = 15.75 часов в неделю
т.е. это надо заниматься паскалём примерно 2-3 полных учебных дня из 6 в неделе
так и было??
Выходит где-то 2 лекции, 2,5 семинара и 2,5 лабы в неделю.
Так это поди вместе с самостоятельной работой, которую преподы любят приписывать к полным часам ;)
пример из жизни - на первой же лекции по крестам (между прочим, неплохой) преподаватель порекомендовал книжки, упомянув, что страуструпа не покупайте - слишком сложно будет для вас - я тогда пошёл и назло купил страуструпа и ещё какую то небольшую - за несколько недель чтения я уже знал весь курс семестра и на лекции ходить смысла не стало
на лабах по программированию на любом языке задания были всегда несложные - потому что их ориентировали на средний уровень студентов, а не с целью подзавалить (или дать подзаработать нескольким людям из группы)
После 50 страниц понял, что кроме хеллоуворда там ничего полезного нет, Начал читать книженцию с грозной препиской "для профессионалов". Которая была понятна и проста
Так я узнал, что я профессионал
не нахватав при этом лишнего?
p/s/ поменьше пафоса, господа.
содержимое font - в 1й группе
Если правильно понимаю, надо выделить нужную группу.
Если тупо этот шаблон с точностью до символа, но меняется только строка "Прокси не найден или используется высокоанонимный прокси", то можно использовать 1 группу из:
а нужна только сама строка, без тегов.
Ок. Наверно, я неправильно формулирую задачу.
Но... скобки, группы? С ними должно работать.
Как говорил Борманд,
Скобки захватят значения. Как их достать со стороны делфи - смотри в документации к библиотеке с регулярками, которую юзаешь. Что-нибудь в духе r.group(1).
А он точно умеет с группами работать? Обычно есть test, exec и match. test проверяет соответствие регулярке, а exec/match и из скобок достают.
Я с дельфи не знаком, но в примерах 2 и 3 к самому tregexpr http://regexpstudio.com/TRegExpr/Help/article_bird_eye_view.html они используют TRegExpr.Exec и TRegExpr.Match.
По крайней мере, в ко-ко-консолечке браузера на жс работает (см. второй элемент массива в последней строке):
кстати, послушайте Джоя ;)
p/s/ Горе Вам, если Вы-преподаватель. Если студенты, имея возможность общаться с преподавателем и задавать ему вопросы, ваяют такие вот глупости - преподавателя нужно гнать в шею. Таково мое мнение.
т.е. дельфи не умеет сделать это само?
Тогда вообще жопа полная :( В делфи, получается, нет способа безопасно (при наличии конкурирующих процессов, которые пытаются сделать то же самое) открыть файл для дописывания... Ну разве что через WinAPI...
есть режимы
fmCreate If the file exists, open for write access, otherwise, create a new file. Unlike the other constants, which are declared in the SysUtils unit, this constant is declared in tge classes unit.
fmOpenRead Open for read access only.
fmOpenWrite Open for write access only.
fmOpenReadWrite Open for read and write access.
fmShareCompat Compatible with the way FCBs are opened. Do not use this mode in cross-platform applications.
fmShareExclusive Read and write access is denied.
fmShareDenyWrite Write access is denied.
fmShareDenyRead Read access is denied. Do not use this mode in cross-platform applications.
fmShareDenyNone Allows full access for others.
можно, наверно, совмещать режимы, хотя я с этим не заморачивался.
Авотхуй. Только что проверил. Все эти режимы кроме fmcreate кидают исключения, если файл не существует, если же комбировать fmcreate с другими режимами (или по отдельности), файл перетирается. Придется, все же, проверять существование файла, иначе никак.
p/s я немного не понимаю Вас, кэп. Если файла нет, его так или иначе придется создать. Чем это помешает разным процессам читать/писать в файл? Есть режимы же. Просто поставить проверку на сущестсвование и выбрать режим.
Жопа в атомарности :) Между вызовами fileexists и open файл могут удалить. Между вызовами fileexists (или try + open) и create файл могут создать, и мы перетрем инфу в нем... И режимы тут никак не спасают.
В API операционок для этого специальные флаги при открытии файлов есть - O_CREAT в никсах и OPEN_ALWAYS в виндах.
Само собой, что вероятность такого бага очень и очень маленькая, и в типичной дельфийской проге на это всем насрать... 146%,что ты с этими косяками никогда и не столкнешься за всю свою жизнь...
Просто я ёбаный параноик ;(
Не думаю, что это столь плохо ;)
Как? :) Ну разве что с нуля переписать егонный Create... И enum с режимами один хрен не расширить...
С тем же успехом лучше сделать своего потомка TStream.
Это примерчег из справки седьмых дельфей - там они вообще на except исключение ловят.
procedure WriteString(ST: Ansistring);
begin
filestream1.Write(st[1], Length(st));
end;
Препод в ахуе))
Это я сейчас так развлекаюсь. Рисую множества Мандельброта и Жюлиа на GPU. При 10000 итераций на пиксель бедное GPU начинает стонать и крутить вентилятор ;)
И это не титанчик, а дохленькая GTX 660.
вот например хотелось бы комп обновить, так интел штампует один шлак, нвидия стоит на месте, а радеон уже четвертый год одно и то же продает, только нумера перерисовывает
куда катится этот мир...
хочу выкинуть на помойку
сломала мне харды своим дерьмовым чипсетом
не грузится со своих же рейдов с первого раза
отсюда желание обновить все кишки
где блять ddr-4, какого хуя extreme процы у интела вечно тормозят на поколение от ширпотребного шлака, какого хуя их проц за килобакс должен сосать в чипсете
какого хуя их хасвельные процы заставляют меня нервно теребить материал про снятие крышки проца, ведь под крышкой птичье дерьмо вместо термопасты
любое дерьмо плохо проводит тепло
реально, для энтузиастов даже выпускают специальные наборы для использования ivy/haswell без крышки (naked ivy)
http://www.ekwb.com/shop/ek-supremacy-precisemount-add-on-naked-ivy.html
ну куда это годится...
При полной загрузке 4 ядер залмановский пепелац вполне держит его на 50 градусах. Правда через пару минут такой работы обороты достаточно высокие набирает, и шумит.
купи уже нормальный проц да погоняй его на 5Ггц, не позорься
А он K. И материнка позволяет разгон, и память годная и с радиаторами. Их останавливает только один распиздяй, которому уже полгода лень настроить параметры и потестить ;)
ноктуа самое то
блин, хочу собраться духом и запилить в новом системнике водянку...
Тогда уж с полным погружением материнки в дистиллированную воду или вазелиновое масло:)
Бесшумно, не греется, правда есть риск разлить хладагент.
> а чего залман купил?
> ноктуа самое то
Ноктюа заказывать надо было. А залманы неплохие и у нас в городе лежали.
Вот такой вот пепелац: http://market.yandex.ru/model.xml?modelid=6031541
у меня была на курсе 1-2 лаба по физике, где надо было всю лабу в глицериновой трубе шарик ронять, замерять и вытаскивать
до сих пор руки помнят этот пиздец, хоть и прошло уже дохуя лет
не смогу себя пересилить
да и стрёмное рассеивание будет от этого аквариума - надо будет делать стенки ребристыми и не ставить в глухой угол квартиры (чтобы хоть какой-нибудь сквозняк был)
думаю что-нибудь попроще - обычный радиатор на выдув через верх + возможно от немцев стенку http://www.alphacool.com/images/product_images/popup_images/759_0.jpg
А ещё были задроченные осциллоскопы, с прыгающим лучом, и престарелые мосты Уитстона.
Купил @ погонял:
А то. Жаль, что охлаждения хватает всего на 4 треда из 12 на этой частоте. Всё-таки старый кулерок оказался слабоват.
Судя по исходникам ядра - через ACPI.
Моники тратят 35 и 30 ватт соответственно.
Системник без разгона:
100W idle
180W игра в кружочки
280W 12x sha256
320W ffmpeg -preset slow
400W far cry primal на максималочках
Системник под разгоном до 5GHz:
300W 4x sha256
330W 5x sha256
370W 6x sha256
На 7x и выше охлаждения не хватает, скидывает частоту :(
З.Ы. Будет чем погреться холодными зимними вечерами...
750.
Да копейки, на самом деле. У нас же не европка.
З.Ы. Проц в простое 700МГц всего, почти как селерон Тараса (ютубчик, редакторы и т.п. = простой).
ковырятель некротредов
Ну пока не тормозит...
Старой доброй перформы ему только на штатные 4.4-4.7 хватает...
из воздуха одна из наиболее збс
до водянки, даже в заводском контуре, у меня так руки и не дошли
З.Ы. Да можно и водянку, в принципе. Места в системнике теперь дохуя...
а так сейчас современная здоровенная - D15, бери, если место есть под такую ебанину (и деньги)
водяные шумят сильнее, там помпа
но потенциально эффективнее (для 8700k ноктуа хватит вообще без проблем)
Ебать, почти 1.5кг. Мне теперь перформа кажется маленькой... Да должна войти, если за память не зацепится.
возможно, придется сначала ближнюю к сокету память ставить, а потом уже кулер (чтобы пальцы не корябать, если в нормальном порядке собирать)
твой тоже позволяет, проверь
Не хотелось бы верхние заглушки снимать. Они неплохо шум гасят, а у меня системник на полу.
Здесь ещё стоит задуматься о том, сколько потребляет проц, которому нужен такой кулер...
Я так делал пару раз (тогда ещё 2.6 ядро было), но возня при обновлении ядра утомляет.
Ты про ревью новых опций ядра прямо в соснольке во время апгрейда со старого конфига? Да, не особо приятная вещь.
На данный момент располагаю информацией, что смесь навоза с соломой обладает низкой теплопроводностью, поскольку:
1. Куча может самовозгораться из-за протекающих химических реакций.
2. Под кучей даже летом можно обнаружить лёд или снег, если её клали зимой.
Но пока более точных данных нет, имею подозрение, что низкая теплопроводность обусловлена соломой. Где бы найти данные по чистому дерьму?
Боюсь, только составлять таблицу самому...
Там на хасвеллах между кристаллом проца и его крышкой теплопередача плохая. Народу приходится разбирать проц и менять теплопроводящую херню :) Элементы пельте тут не особо помогут. Разве что если их засунуть между кристаллом и крышкой.
Но в данном состоянии я солидарен со стертором, процедура - сраное говно.
p/s/
Ава - заебись.
Этот на делфи. Вроде требует SQL Server. Но я думаю знающие люди оценят квалификацию моего уважаемого преподавателя.
http://yadi.sk/d/AcndhxgNFbP7N
А эти два помоему на бейсике, препод со слюнями у рта кричит что это его 3Д и 2Д движки собственной разработки. Я делаю вид, что ему не верю что это возможно, а он бедный аж на говно исходит. Компилятор мне неизвестен, но не беда - экзэшники препод оставил
http://yadi.sk/d/Q2IORhp3FbP96
http://yadi.sk/d/iEq_cCjLFbP9n
все остальное в вузе устраивает?
ты ведь не надеялся, что каждый первый встреченный в жизни препод будет светилой передовой науки, пренебрегающий гуглами, микрософтами, айбиемами и ораклами, выстроившимися в очередь с офферами к нему, и желающим передать всю глубину своего блестящего жизненного опыта за 40 тыщ рублей?
А что это?
сомневаюсь, что один и тот же препод тащит все курсы один - скоро сменится на другого, значит
тем более, если ты назвал его курс информатикой
Или вот наверни http://www.lektorium.tv/subject/?id=2716
На страницах нашего сайта вы найдёте парсеры и грабберы для маркетинга, приобрести информацию с базами контактов и e-mail. <a href=http://parsinfo.ru/products/parser_2gis>купить рарсер 2 гис</a>. Мы можем предложить даже базы порталов и устойчивые SMTP серверы для рассылки электронных сообщений.
Наше ПО и базы контактов смогут вам помочь в вашем бизнесе! <a href=http://parsinfo.ru/products/smtp-servera-dlya-rassylki>купить smtp</a>. Они созданы для того, дабы систематизировать информацию для её наиболее эффективного использования. Подобный подход к делу позволяет заниматься маркетингом во много раз эффективнее и зарабатывая соответственно во много раз больше денег. А базы контактов и e-mail позволят всегда иметь актуальный список постоянных и потенциальных заказчиков, держать связь и сотрудничать, договариваться и заключать сделки.
Для каждого пользователя мы предлагаем бесплатный парсер e-mail с сайтов, остальное ПО и базы контактов и данных мы предлагаем вам по низкой цене. <a href=http://parsinfo.ru/catalog/bazy-email-lyudej>база список жителей амурских область</a>. Вложенные подобным образом деньги помогут повысить ваши доходы на порядок!