Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Запись выделенного текста в конкретную строку и конкретное местов в строке файла
|
|||
|---|---|---|---|
|
#18+
Добрый день, Задача в следующем имеется два файла, в одном информация с какой строкой работать и какое действие совершать, во втором данные которые необходимо изменить. С выделение нужной строки и части строки разобрался, вопрос как записать измененное значение обратно в файл заместив им предыдущее значение, Спасибо. #!/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); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2014, 15:10 |
|
||
|
Запись выделенного текста в конкретную строку и конкретное местов в строке файла
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2014, 16:17 |
|
||
|
Запись выделенного текста в конкретную строку и конкретное местов в строке файла
|
|||
|---|---|---|---|
|
#18+
Спасибо за совет! попробовал через tie но почему-то не заменяет строку на новую а просто удаляет, что я не так делаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2014, 14:22 |
|
||
|
Запись выделенного текста в конкретную строку и конкретное местов в строке файла
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2014, 14:23 |
|
||
|
Запись выделенного текста в конкретную строку и конкретное местов в строке файла
|
|||
|---|---|---|---|
|
#18+
Maks_84Задача в следующем имеется два файла, в одном информация с какой строкой работать и какое действие совершать, во втором данные которые необходимо изменить.Вроде задача для sed. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2014, 14:29 |
|
||
|
Запись выделенного текста в конкретную строку и конкретное местов в строке файла
|
|||
|---|---|---|---|
|
#18+
Для конкретного значения строки всё работает , а в цикле считает только для значения 1 , может я цикл не так задаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2014, 17:13 |
|
||
|
|

start [/forum/topic.php?fid=23&fpage=82&tid=1462585]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 268ms |
| total: | 381ms |

| 0 / 0 |
