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

Вниз

Как спозиционироваться на нужную строку в текстовом файле   Найти похожие ветки 

 
Igor23   (2008-01-08 02:37) [0]

Привет всем! Поможите?

Существует текстовый файл:
vj"hgj12t
mmmШМАТnnnn
jbhgjvhjcTeam1bn
;p[l;l;l;]l
kjncfxklkСАЛО{vb;,b;"v
ifkg;cky
cghk"f["
flk,[oi[g7
"ik[ul;mt;oikmg
]okhj[gl8;"ouk-=]

Нам известна только статичная строка "mmmШМАТnnnn" из этого файла.
Определяю "ШМАТ" следующим образом:
while not Eof(F) do
             begin
            Readln(F, S);
            if S="mmmШМАТnnnn"+ then
                           begin
                                 s1:="ШМАТ";
                                 i:=Pos(s1,S); //поз начала в подстроке
                                  ShowMessage(S[i]+S[i+1]+S[i+2]);
                                     Showmessage(IntToStr(i));
                             end;

             end;

Как теперь спозиционироваться и работать со строкой "kjncfxklkСАЛО{vb;,b;"v" где только САЛО в данной строке переменное значение, но ещё мы знаем, что эта строка расположена четко ниже(через 2 строки), от строки "mmmШМАТnnnn"

Буду очень и очень признателен за поддержку!


 
Германн ©   (2008-01-08 02:47) [1]


> Как теперь спозиционироваться и работать со строкой "kjncfxklkСАЛО{vb;
> ,b;"v" где только САЛО в данной строке переменное значение,
>  но ещё мы знаем, что эта строка расположена четко ниже(через
> 2 строки), от строки "mmmШМАТnnnn"

1. Теперь (т.е. по коду уже поздно).
2. А при чём тут САЛО?
3. А что означает конструкция if S="mmmШМАТnnnn"+ then
?


 
Igor23   (2008-01-08 02:53) [2]

1. НЕТ не поздно в самый раз

2."kjncfxklkСАЛО{vb;,b;"v"-вернее вся строка меняет свои значения т.к это будут циферки

3.сорри очепятка
if S="mmmШМАТnnnn" then
                          begin
                                s1:="ШМАТ";
                                i:=Pos(s1,S); //поз начала в подстроке
                                 ShowMessage(S[i]+S[i+1]+S[i+2]);
                                    Showmessage(IntToStr(i));
                            end;


 
Германн ©   (2008-01-08 03:09) [3]

Для "позиционирования" в текстовом файле на нужную строку надо выполнить ReadLn() (Номер строки -1) раз.


 
Igor23   (2008-01-08 03:16) [4]

дык номер строки тоже неизвестен(((


 
Igor23   (2008-01-08 03:20) [5]

НЕ ДОПОНЯЛ ЧТО ДОПИСАТЬ

procedure TForm1.Button1Click(Sender: TObject);
var
F:TextFile;
S, S1: String;
I,k,z: Integer;
begin
   AssignFile(F, "work.txt");
   RESET(F);
     while not Eof(F) do
             begin
            Readln(F, S);
            if S="mmmШМАТnnnn"+ then
                           begin
                                 s1:="ШМАТ";
                               i:=Pos(s1,S); //поз начала в подстроке
                                  ShowMessage(S[i]+S[i+1]+S[i+2]);
                                     Showmessage(IntToStr(i));
                             end;

             end;

CloseFile(F);

end;


 
Германн ©   (2008-01-08 03:46) [6]


> Igor23   (08.01.08 03:20) [5]
>
> НЕ ДОПОНЯЛ ЧТО ДОПИСАТЬ
>
>

Азбуку учат в первом классе. Арифметику во втором.

Готовый код - покупают, вне зависимости от уровня образования!
Примите и прочь!


 
Igor23   (2008-01-08 03:49) [7]

Вы не правы! не собираюсь я не у кого код покупать, спасибо сам допишу


 
{RASkov} ©   (2008-01-08 04:04) [8]

> [5] Igor23   (08.01.08 03:20)
> НЕ ДОПОНЯЛ ЧТО ДОПИСАТЬ

:(
Я тоже вапще ничего недопонял....(
В чем вопрос-то? В [0] я таки видел один вопрос

> Поможите?

И шо??? -Ну поможем, дальше-то что? :)


 
{RASkov} ©   (2008-01-08 04:49) [9]

> [7] Igor23   (08.01.08 03:49)

Раз десять перечитал [0].... код пытался понять.... нифика :(
А вообще здесь пахнет примитивным парсером...
Pos, Copy, Length - думаю вполне хватит....


 
ganda ©   (2008-01-08 09:07) [10]

или же обынковенным TStringList и ищи себе через Pos точно будешь знать где находится искоемое слово и на какой строке


 
Igor23   (2008-01-08 10:03) [11]


> Pos, Copy, Length - думаю вполне хватит....


да это работа со строками, а мне спозиционироватся нужно на изменяющуюся строку "kjncfxklkСАЛО{vb;,b;"v" в изменяющемся файле txt(номер этой строки меняется), зная что эта строка расположена четко ниже(через 2 строки), от строки "mmmШМАТnnnn".
Так думаю, что:
1.Нужно сначала определить позицию строки "mmmШМАТnnnn" в файле
2.Потом прыгнуть на нужную строку(в данном случае расположенную ниже на 2 строки) от строки "mmmШМАТnnnn".


 
Loginov Dmitry ©   (2008-01-08 10:28) [12]

> Так думаю, что:
> 1.Нужно сначала определить позицию строки "mmmШМАТnnnn"
> в файле
> 2.Потом прыгнуть на нужную строку(в данном случае расположенную
> ниже на 2 строки) от строки "mmmШМАТnnnn".


Вызвав Readln(F) 2 раза, ты попросту пропустишь 2 строки. Следующий вызов Readln(F, S) должен считать из файла то самое САЛО.


 
Anatoly Podgoretsky ©   (2008-01-08 10:46) [13]


> Вызвав Readln(F) 2 раза, ты попросту пропустишь 2 строки.
>  Следующий вызов Readln(F, S) должен считать из файла то
> самое САЛО.

Идея опасная, сегодня на две ниже, после завтра на четыре, но это не важно, зачет сдавать завтра.


 
Igor23   (2008-01-08 10:48) [14]


> ganda ©   (08.01.08 09:07) [10]


спасибо  очень помогли


 
Igor23   (2008-01-08 10:48) [15]


> ganda ©   (08.01.08 09:07) [10]


спасибо  очень помогли


 
Igor23   (2008-01-08 10:50) [16]

ВСЕМ СПАСИБО ТЕМА ЗАКРЫТА про TStingList  совсем забыл)))


 
Плохиш ©   (2008-01-08 10:57) [17]


> ТЕМА ЗАКРЫТА про TStingList  совсем забыл

Ещё один бесполезный велосипед с треугольными колёсами :-))



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

Форум: "Начинающим";
Текущий архив: 2008.02.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.045 c
15-1198396172
ДжонС
2007-12-23 10:49
2008.02.03
DEC - > HEX


15-1197962344
Loginov Dmitry
2007-12-18 10:19
2008.02.03
ProgressViewer


15-1196332511
Tornado
2007-11-29 13:35
2008.02.03
Установка EhLib


15-1199109800
DillerXX
2007-12-31 17:03
2008.02.03
Новогодняя задачка


3-1190631434
misha_gr
2007-09-24 14:57
2008.02.03
Уважаемый модератор раздела "Базы".





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский