Форум: "Начинающим";
Текущий архив: 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.042 c