>>Есть ли функция в Windows API, позволяющая получить текущий каталог? GetCurrentDirectory и не надо ничего извлекать=) http://msdn.microsoft.com/en-us/library/aa364934(VS.85).aspx
Народ как редактировать реестр с помощью проги к примеру запускаешь прогу и она параметры редактирует
как работать на delphi (lazarus'e) с текстовыми файлами со строками более 255 символов длиной? неужели только посимвольно читать и бить на приемлимые строки? вопрос решен использованием ansistring
Самое большое количество символов, которое можно использовать в Delphi. Нужно создать тип. Code: type TStr = array[0..1024] of Char; LngStr = ^TStr; var Buffer: LngStr; ... New(Buffer); ReadLn(F, Buffer^); Читай статьи по оптимизации кода. Можешь в типсах здесь же поискать, как то видел. Пару советов 1) Если ты часто используешь для переменных один и тот же тип, integer, к примеру, то лучше создать тип и потом ссылаться на него type myInt = Int64; ... var i:myInt; ... 2) Если переменная не становится отрицательной то не зачем ей присваивать значение integer. Присвой лучше word Ну если это переменная счетчака, то как правило присваивают byte. вообщем все в таком духе..
Насколько я понял F у тебя типа text, то как же тогда команда ReadLn, которая считывает из файла строки, укажет строку - адресом одного символа?!?!?! Я писал в типсах про множества...
Абсолютно не понял, что ты этим хотел сказать?! В адресную ячейку (Buffer) в которую можно записать 1024 символа и записывается считанная строка. Таким образом в текстовом файле в одной строке содержится максимально 1024 символа и строки поочередно считываются. При этом нужно конечно бы освободать память при переходе на новую строчку. Иначе говоря считывание из текстового файла, в строчках которого достаточно большое кол-во символов может происходить следюущ. образом: Code: var f:TextFile; begin AssignFile(f,'txtfile'); Reset(f); while not EOF(f) do begin new(buffer); readln(f,buffer^); .... dispose(buffer); end; CloseFile(f);
A2GIL Блин...ты сам разберись!!! Code: type TStr = array[0..1024] of Char; LngStr = ^TStr; var Buffer: LngStr; При таком объявлении память будет выделена ТОЛЬКО ПОД УКАЗАТЕЛЬ (Buffer) (всего 1 байт). Какие там 1024 символа под строку?!?!?! (и даже не 1024, а 1025) Ты где такое видел??? =) В твое примере ты выделил память под 1025 символов!!!! К ним так buffer^ не обращаются!!! У тебя это и не откомпилируется... Там циклом все делается... Это динамически формируемые массивы...
Вопрос такой! Я гружу в memo большие обьемы текста как сделать чтоб ProgressBar отоброжал процесс выполнения заливки? Думаю вопрос вы поняли.
"Как сделать ну вот это, там еще такая штучка, ну вы поняли" ... откуда грузишь? каг грузишь? мы те экстрасенсы?
Легче статически сделать, выполнение загрузки путем увеличения с паузой. Code: procedure Tform1.Step; var i: Integer; begin ProgressBar1.StepIt; Sleep(12); ProgressBar1.StepBy(12); ProgressBar1.Max:=100; end; Загрузка текстового файла Code: procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin if OpenDialog1.Execute then begin if FileExists(OpenDialog1.FileName) then begin Step; Memo1.Lines.LoadFromFile(OpenDialog1.FileName); ProgressBar1.Position:=0; end; end; end;
Имхо, тогда надо использовать на LoadFromFile, а буферизованное чтение из файла, скажем, блоками по 4к, макс прогрессбара установить в размер файла (в кб, скажем) и увеличивать при каждой n-ой итерации (на 4 в данном случае). И не забывать про processmessages после каждого обновления значения.
С помощью idHttp и CookieManager я авторизуюсь на сайте N, затем запросом http.get("N.ru/нужная страница"); загружаю исходный код запрашиваемой HTML'ки. С этим все отлично. Вопрос: подскажите пожалуйста в каком направлении копать на пути парсинга загруженной HTML страницы, без TWebBrowser. В частности как получать данные из таблиц с id и class например HTML: <table id="mess"> <tr id="qwerty"> <td class="main">...</td> </tr> </table> То бишь, надо выдернуть данные (текст) из содержащих эти классы/айди тегов. Насколько я понял,нужный парсинг лежит в огороде DOM, а парсить путем Pos("") не особо хочется По DOM'у, в исходниках везде идет представление WebBrowser.Document как IHTMLDocument2, но можно и без WebBrowser.Document, для этого надо что-то перегонять в IHTMLDocument2, а вот что - без понятия