Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 17.11.2014
Сообщений: 7
1

Не получается конкатенировать строки

02.03.2015, 16:31. Показов 978. Ответов 8
Метки нет (Все метки)

Имеется файл со строками, в некоторых строках есть слово Советчик1

123123 Советчик1
24525245
647365736
6373647
453676 Советчик1
145241 Советчик1
12451323
2423423
234234234
1245124 Советчик1

Вот такого вида.

Надо соединить строки которые находятся между строками содержащими Советчик1

Чтобы получить такой вид

123123 Советчик1
24525245 647365736 6373647
453676 Советчик1
145241 Советчик1
12451323 2423423 234234234
1245124 Советчик1

Вот начал, как делать дальше не знаю, гугл не хочет помогать
PHP
1
2
3
4
5
6
7
8
9
10
<?php
$findme = 'Советчик1';
$file = file('gotovoe.txt');
    for($i=0; $i<count($file); $i++) 
    {
        $pos = strpos($file[$i], $findme);
        if ($pos !== false)  ??? 
    }
file_put_contents('gotovo.txt', ??? );
?>
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.03.2015, 16:31
Ответы с готовыми решениями:

Скопировать и конкатенировать (объединить) заданные строки согласно условию
Скопируйте строку А в строку В строку К в строку Т, объедините.

Конкатенировать файлы
8.6 Даны два файла: f1:” знак” и f2:”генератор”. Конкатенировать файлы f1 и f2 через букву...

Пытаюсь конкатенировать(слепить) чары
Почему не работает? int main() { char a = &quot;&quot;; int b = 5; char c = 'c'; ...

Как конкатенировать два числа?
Здравствуйте друзья! Возможно ли в java склеить два числа? То есть из 10 и 20 сделать 1020. ...

8
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
02.03.2015, 16:56 2
PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php
 
$filename = 'text.txt';
$findme = 'Советчик1';
 
$file = file($filename);
$new = '';
foreach($file as $string) {
    $new .= trim($string);
    $new .= strpos($string, $findme) ? PHP_EOL : ' ';
}
file_put_contents($filename, $new );
0
0 / 0 / 0
Регистрация: 17.11.2014
Сообщений: 7
02.03.2015, 17:07  [ТС] 3
Вылетает Parse error: syntax error, unexpected ']' in Z:\home\localhost\www\555.php on line 8
0
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
02.03.2015, 17:25 4
код рабочий, и в нем ни одной квадратной скобки нет, которая у вас "вылетает"
0
0 / 0 / 0
Регистрация: 17.11.2014
Сообщений: 7
02.03.2015, 18:05  [ТС] 5
все работает, просто я нечаянно не туда код вставил.
но выводит немного не так как надо
выводит так
123123 Советчик1 24525245 647365736 6373647
453676 Советчик1
145241 Советчик1
12451323 2423423 234234234 1245124 Советчик1
как сделать чтобы строка содержащая Советчик1
не соединялась с другой и была отдельной, чтобы соединялись только те строки которые между строками в которых есть Советчик1, в общем чтобы стоки содержащие Советчик1 так и оставались отдельными
0
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
02.03.2015, 19:27 6
Лучший ответ Сообщение было отмечено tearte как решение

Решение

PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php
 
$filename = 'text.txt';
$findme = 'Советчик1';
 
$file = file($filename);
$new = '';
foreach($file as $string) {
    $string = trim($string);
    $new .= strpos($string, $findme) ? PHP_EOL.$string.PHP_EOL : $string.' ';
}
file_put_contents($filename, trim($new));
вот так наверное, не проверял, но вроде так должно быть
1
0 / 0 / 0
Регистрация: 17.11.2014
Сообщений: 7
02.03.2015, 19:40  [ТС] 7
Спасибо огромное, все работает)
0
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
02.03.2015, 20:05 8
Лучший ответ Сообщение было отмечено tearte как решение

Решение

вот эту строку нужно исправить
PHP
1
$new .= strpos($string, $findme) ? PHP_EOL.$string.PHP_EOL : $string.' ';
на
PHP
1
$new .= (strpos($string, $findme)!==false) ? PHP_EOL.$string.PHP_EOL : $string.' ';
1
0 / 0 / 0
Регистрация: 17.11.2014
Сообщений: 7
02.03.2015, 20:07  [ТС] 9
Я сам это уже нашёл, спасибо)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.03.2015, 20:07

Как правильно конкатенировать десятичные цифры в строку?
Здравствуйте. Этот запрос: SELECT pru.virtuemart_product_id , product_sku , CASE WHEN...

Конкатенировать файлы друг с другом, записав в третий файл F3
1. Даны два файла F1 и F2. Конкатенировать их друг с другом, записав в третий файл F3. 2. Дан...

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

Не получается сформировать строки
Задача такая нужно формировать строку из строк массива и записывать в нее от 3-х до 5-ти символов....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru