Jump to content

Как к каждой строчке приписать скобки цифры и запятые?


Recommended Posts

Список слов:

абзац|отступ

абзаца|отступа

абзацам|отступам

абзацами|отступами

абзацах|отступах

Нужно чтобы они выглядели вот так:

(1, 'абзац|отступ'),

(2, 'абзаца|отступа'),

(3, 'абзацам|отступам'),

(4, 'абзацами|отступами'),

(5, 'абзацах|отступах'),

Как это организовать? Или через какую программу.

Link to comment
Share on other sites

На вскидку в голову пришел скрипт для PHP (под windows PHP можно поставить простым установщиком) :

<?php$text = file_get_contents("C:\\phptest\\text.txt");$lines = explode("\r\n", $text);$number = 1;foreach ($lines as &$line) {$line ="(".$number.", '".$line."'),";$number++;}$text = implode("\r\n", $lines);file_put_contents("C:\\phptest\\text2.txt", $text);?>

Сохранить в файл x.php

Во второй строке указывается имя файла с оригинальным текстом.

В восьмой имя файла с результатом.

При изменении местоположения файла не забыть что \ должен быть заменен на \\

запустить в коммандной строке (под windows)

Путь_К_PHP\php.exe путь_к_файлу_php

Скрипт не должен вывести ничего если нет ошибок, файл с текстом будет содержать измененный результат.

Edited by LifeOnNet
  • Upvote 1
Link to comment
Share on other sites

Не смотря на эти ошибки всё получилось, огромное спасибо вам :thumbup:

Большое количество строк скрипт не осилил 1.5млн)))

fatal error allowed memory size of xxx bytes exhausted (tried to allocate bytes)

Edited by Карбюратор
Link to comment
Share on other sites

Не смотря на эти ошибки всё получилось, огромное спасибо вам

Рад что все удалось.

Большое количество строк скрипт не осилил 1.5млн)))

Все таки кажется что это проделки денвера :)

я на него как-то не подумал :) я обычно ставлю с php.net оригинал, и использую CLI оригинала.

Кстати скрипт протестил на вашем коротком примере именно на оригинальном чистом php, работал без донастроек "из коробки", ошибок как у вас не выдавал (и не должен был), но как сказал не ожидал что вы используете денвер, потому сказать пока сложно что там перенастроено.

Что касается 1.5 миллиона строк, это аспект, уважаемый, достаточно важный, его надо было бы оговорить :)

  • Upvote 1
Link to comment
Share on other sites

Скачал другой php. Но он тоже отказывается такое большое кол-во строк переделывать. Зато не каких ошибок не выдает. 400 000 строк переделать согласился. Этого думаю достаточно. Ещё раз спасибо вам.

Link to comment
Share on other sites

Просмотрев на свежую голову, идея состоит в том что файл целиком читается в память, а память для каждого скрипта ограничена.

Потому можно добавить вторую строку следующим образом, вместо 16 поставить размер на пару мегабайт больше размера исходного файла с миллионами строк :) :

<?phpini_set('memory_limit','16M');$text = file_get_contents("C:\\phptest\\text.txt");$lines = explode("\r\n", $text);$number = 1;foreach ($lines as &$line) {	$line ="(".$number.", '".$line."'),";$number++;}$text = implode("\r\n", $lines);file_put_contents("C:\\phptest\\text2.txt", $text);?>
Edited by LifeOnNet
  • Upvote 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...