powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Запись выделенного текста в конкретную строку и конкретное местов в строке файла
7 сообщений из 7, страница 1 из 1
Запись выделенного текста в конкретную строку и конкретное местов в строке файла
    #38702052
Maks_84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,
Задача в следующем имеется два файла, в одном информация с какой строкой работать и какое действие совершать, во втором данные которые необходимо изменить. С выделение нужной строки и части строки разобрался, вопрос как записать измененное значение обратно в файл заместив им предыдущее значение, Спасибо.
#!/usr/bin/perl
#use strict;
#use warnings;

my ($n,$i,$dir);
my $count1=0;
my $count2=0;
my $count3=0;
my $dx1=500;

open(LD, "+< vector.dat") || die("Error opening file for reading"); # открываем файл данных
open(NLD, "< vector.dat") || die("Error opening file for reading"); # открываем файл данных
open(LW, "+< beam.anf") || die("Error opening file for reading"); # открываем файл модели
open(NLW, "< beam.anf") || die("Error opening file for reading"); # открываем файл модели
open(WLW, "+< beam.anf") || die("Error opening file for reading"); # открываем файл модели


while (<NLW>) {$count2++ ;} # считаем число строк в файле модели
$n2=$count2;
sub NL2 { $LM[$_[0]]=<LW>};
for ( $j=1; $j<= $n2; $j++)
{ NL2 "$j"; }
sub NL3 { $NLM[$_[0]]=<WLW>};
for ( $j=1; $j<= $n2; $j++)
{ NL3 "$j"; }
while (<NLD>) {$count1++ ;} # считаем число строк в файле модели
$n1=$count1;
sub NL1 { $LD[$_[0]]=<LD>};
for ( $i=1; $i<=$n1; $i++)
{ NL1 "$i"; # присваиваем строки данных
next if ($LD[$i] =~ m/^\s*$/); # пропускаем строку из одних пробелов
chomp($LD[$i] ); # убираем замыкающий перевод строки (если требуется)
$LD[$i] =~ s/^\s*//; # убираем ведущие пробелы
$node_n[$i] = join(' ',(split(/[\s\,\!\?]+/,$LD[$i]))[0]); # получаем номер точки
$dir[$i] = join(' ',(split(/[\s\,\!\?]+/,$LD[$i]))[1]); # получаем направление
$kx_n[$i] = join(' ',(split(/[\s\,\!\?]+/,$LM[(11+$node_n[$i]*2)]))[2]); # получение координаты х
$ky_n[$i] = join(' ',(split(/[\s\,\!\?]+/,$LM[(11+$node_n[$i]*2)]))[3]); # получение координаты y

if ($dir[$i]=1) {$nkx_n[$i]=($kx_n[$i]), $nky_n[$i]=($ky_n[$i]+$dx1);} # Изменение координаты
elsif ($dir[$i]=2) {$nkx_n[$i]=($kx_n[$i]+$dx1), $nky_n[$i]=($ky_n[$i]+$dx1);}
elsif ($dir[$i]=3) {$nkx_n[$i]=($kx_n[$i]+$dx1), $nky_n[$i]=($ky_n[$i]);}
elsif ($dir[$i]=4) {$nkx_n[$i]=($kx_n[$i]+$dx1), $nky_n[$i]=($ky_n[$i]-$dx1);}
elsif ($dir[$i]=5){$nkx_n[$i]=($kx_n[$i]), $nky_n[$i]=($ky_n[$i]-$dx1);}
elsif ($dir[$i]=6) {$nkx_n[$i]=($kx_n[$i]-$dx1), $nky_n[$i]=($ky_n[$i]-$dx1);}
elsif ($dir[$i]=7) {$nkx_n[$i]=($kx_n[$i]-$dx1), $nky_n[$i]=($ky_n[$i]);}
elsif ($dir[$i]=8) {$nkx_n[$i]=($kx_n[$i]-$dx1), $nky_n[$i]=($ky_n[$i]+$dx1);}
else {;}

print $LM[(11+$node_n[$i]*2)][2];
close(WLW); # закрываем файл для чтения
}
close(LD); # закрываем файл для записи
close(LW); # закрываем файл для записи
close(NLW); # закрываем файл для записи
close(NLD); # закрываем файл для чтения
close(WLW);
...
Рейтинг: 0 / 0
Запись выделенного текста в конкретную строку и конкретное местов в строке файла
    #38702101
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maks_84,

Tie::File
...
Рейтинг: 0 / 0
Запись выделенного текста в конкретную строку и конкретное местов в строке файла
    #38702932
Maks_84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за совет!

попробовал через tie но почему-то не заменяет строку на новую а просто удаляет, что я не так делаю?
...
Рейтинг: 0 / 0
Запись выделенного текста в конкретную строку и конкретное местов в строке файла
    #38702937
Maks_84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Запись выделенного текста в конкретную строку и конкретное местов в строке файла
    #38702953
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maks_84Задача в следующем имеется два файла, в одном информация с какой строкой работать и какое действие совершать, во втором данные которые необходимо изменить.Вроде задача для sed.
...
Рейтинг: 0 / 0
Запись выделенного текста в конкретную строку и конкретное местов в строке файла
    #38703171
Maks_84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для конкретного значения строки всё работает , а в цикле считает только для значения 1 , может я цикл не так задаю?
...
Рейтинг: 0 / 0
Запись выделенного текста в конкретную строку и конкретное местов в строке файла
    #38703738
Maks_84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо!
Вроде работает.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Запись выделенного текста в конкретную строку и конкретное местов в строке файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]