dima_lamo
7:01:2008, 21:57
Тема такая:
Мне нужно чтоб моя программа, отобразила только определённую часть файла в компоненте.
Например компонент ListBox (как сделать чтоб слова автоматически переносились на новую строку?)
Пример: текстовый файл имеет такое содержание:
***text1***
Тут какой то текст... Вот его то и нужно отобразить
***end***
Задача сделать так, чтоб в компоненте ScrollBox отобразилось Только то, что находится между
"***text1***", и "***end***" ("***text1***", и "***end***" отоброжать не надо)
Вопрос номер 2.
Как сделать чтоб делфи отобразила в конпоненте Memo Все найденные строки, которые начинаются с
"***text"
Жду помощи
Morpheus
8:01:2008, 07:15
Цитата(dima_lamo @ 7:01:2008, 23:57 )
Задача сделать так, чтоб в компоненте ScrollBox отобразилось Только то, что находится между
На копочке прочитать содержимое текстового файла
от "***text1***"
до "***end***"
и вставить этот текст в ListBox.items ( помоему у него итемсы )
dima_lamo
8:01:2008, 10:18
А теперь то же самое, тольео по русски, и желательно с ответом на второй поставленный вопрос...
Заранее благодарен
Morpheus
8:01:2008, 10:39
Всё делаеться просто,
]]>здесь описаы примеры работы со строками]]> - этого более чем достаточно
dima_lamo
8:01:2008, 11:11
Ок, спс
dima_lamo
8:01:2008, 14:42
Вообщем есть 2 файла:
1. file.txt
2. info.txt
Необходимо сделать так, чтоб из первого файла во второй скопировались только строки, в которых есть следующие символы:
:
;
Я уже третий час мучаю себя и делфи, не как не могу это осуществить, прошу, приведите пример кода
(я даж тупо полный текст не могу скопировать из файла в файл,
точнее могу, но это мне нужно скопировать не из одного, а из нескольких файлов в один, а оно почемуто перезаписывает данные, удоляя старое)
Главное сделать так, чтоб из первого файла во второй скопировались только строки, в которых есть следующие символы:
:
;
Жду помощи, заранее Спасибо
dima_lamo
8:01:2008, 19:25
Form1.Memo2.Lines.LoadFromFile(test.txt);
При загрузки более одного файла старое удоляется то, что было загружено от старого.
То есть при такой записи:
Form1.Memo2.Lines.LoadFromFile(test.txt);
Form1.Memo2.Lines.LoadFromFile(test1.txt);
Остаётся только содержимое файла test1.txt, как это исправить?
Точнее как сделать так, чтоб то что было загруженно из старого файла НЕ удолялось
dima_lamo
8:01:2008, 20:58
Rfr сделать так, чтоб из первого файла во второй скопировались только те строки, в которых есть следующие символы:
:
;
Для:
dima_lamoнужно использовать процедуру append или функцию add для lines
что то на подобе
var st:TStringList;
begin
st:=TStringList.Create;
try
st.LoadFromFile('c:\Readme.txt');
Memo1.Lines.Append(st.Text );
finally
end;
end;
для поиска блоков можно использовать RichEdit1.FindText() которая возвращает позиции найденых параметров
пример из хелпа
procedure TForm1.Button1Click(Sender: TObject);
begin
FindDialog1.Position := Point(RichEdit1.Left + RichEdit1.Width, RichEdit1.Top);
FindDialog1.Execute;
end;
procedure TForm1.FindDialog1Find(Sender: TObject);
var
FoundAt: LongInt;
StartPos, ToEnd: Integer;
begin
with RichEdit1 do
begin
{ begin the search after the current selection if there is one }
{ otherwise, begin at the start of the text }
if SelLength <> 0 then
StartPos := SelStart + SelLength
else
StartPos := 0;
{ ToEnd is the length from StartPos to the end of the text in the rich edit control }
ToEnd := Length(Text) - StartPos;
FoundAt := FindText(FindDialog1.FindText, StartPos, ToEnd, [stMatchCase]);
if FoundAt <> -1 then
begin
SetFocus;
SelStart := FoundAt;
SelLength := Length(FindDialog1.FindText);
end;
end;
end;
Кстати товарисчи программисты перавый раз солкнулся с абстрактными классами я бы хотел у вас уточнить. Тоесть в абстрактных классах определенные методы реализуются только в потомках этого класса ? Тому пример Tstring метод Loadfromfile опсан в tstring а реализован в потомке TStringList.
dima_lamo
9:01:2008, 15:47
root, + те! вот как сделать чот строки с символами:; записывались, я сам разобрался,
а за поиск спс!
dima_lamo
9:01:2008, 16:38
И ещё вопросик
position := AnsiPos('1;', s);
if position = 0
then
else
Вот эта шняга ищет в стоке указанные мной символы, и если таковые есть, записывает строку, я не могу вкурить как сделать так, чтоб она искала переменные .
Например есть перемнная p типо целых чисел, и надо сделать так, чтоб прога записала только те строки, где есть целые числа
и надо при этом сделать чтоб например чтоб она искала на только числа, а например число;число:буква, ну и так далее
Пример:
Пусть в фаела много строк, в одной нам надо найти только те строки, в которыех есть такое содержимое:
(целое число)%(целое чисто)№(любая буква)
ну и так далее...
dima_lamo
9:01:2008, 16:58
Чё не хочет работать по тому принцыпу...
Помет пример кода выложите? (к моему случаю)
Для:
dima_lamoПочитай в интернете про регулярные выражения+ delphi
маска такая ('+' это хотябы один раз )
ExecRegExpr('[\d]+%[\d]+№([\w\d]+)+', Edit1.Text)
там еще разные методы есть жадный или не жадный
вот почитай
синтакси у них практический одинаковый
]]>http://www.phpfaq.ru/regexp]]>
Цитата(dima_lamo @ 9:01:2008, 18:58 )
Чё не хочет работать по тому принцыпу...
А вы что, просто скопипастили? Неа, так не будет, там надо еще библиотечку скачать, потом установить ее, подключить, подсоединить, воткнуть, .. вот тогда и заработает, я думаю мин за пять можно справиться.
sax_ol прав там проcто в uses нужно добавить
вот еще
]]>http://www.delphikingdom.com/asp/viewitem.asp?catalogid=163]]>
dima_lamo
9:01:2008, 19:08
Всем спс за помощь! Ща пошол разбиратся
dima_lamo
9:01:2008, 21:23
Блин, чёт ни как не хочет работать...
Вот этот код я использую для поиска в строке:
var
s:string;
position : Integer;
degin
AssignFile(f, test.txt);
Reset(f);
while(Eof(f)=false)do
begin
readln(f,s);
position := AnsiPos('34052$, s);
if position = 0
then
else
тут функция записи в строку
Надо сделать так, чтоб записывались ВСЕ строки, где есть знак $, и перед ним 5 цыфер
Помогите плиз, я уже реально устал с этим куском кода мучатся!
dima_lamo
10:01:2008, 01:26
С этим разобрался...
А теперь ещё один маленький вопросиГ
При работе проги вылетает ошибка error 32, это значит что файл используется другим приложением,
как сделать чтоб перед открытием программа проверила, не использует ли этот файл другое приложение, и если использвет чтоб не выполнялась определённая часть кода.
Желательно с примером
Для: dima_lamo
код с пометкой в какой строке шибка.
dima_lamo
10:01:2008, 03:38
С этим я тожж разобрался, try expect end помогло,
А теперь ещё один вопросиГ (вот зас реально жду помощи, так как уже третий день не могу с этим раззобратся)
Как сделать так, чтоб прога всретив некорктный символ не вылетала с ошибкой, а тупо не записала эту строку и продолжида выполнения кода. try expect end в этом случае не работают
Для: dima_lamo
Вы покажите код, символ и ошибку, а то гадать долго будем.
dima_lamo
12:01:2008, 16:27
Мне нужно чтоб чтоб вместо перехода на новую строку записывался символ 'h'
Замену символов я делаю этим кодом:
s:= ReplaceSub(s,'0','b');
Подскажите что прописать чтоб вместо перехода на новую строку. был символ h
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.