Ostap_Boyko
1

Хочу реализовать одну простую задачу на РНР , но не получается

02.10.2013, 12:05. Показов 708. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте,

Хочу сделать следующее:

У меня есть текст (строка):

"
T1M6
G0Z25.000
G0X0.000Y0.000S25000M3
G0X16.900Y-0.878Z25.000
G1Z12.623F300.0
G1X16.973
X17.264
X18.303Y-0.686
X13.209
X12.744Y-0.486
X19.385
X20.467Y-0.286
X12.279
X11.952Y-0.146
X11.902Y-0.086
X21.549
X21.966Y-0.009
X22.049Y0.006Z-12.377
X22.632Y0.114
X11.734
X11.565Y0.313
X23.714
X24.796Y0.513
X16.432
X16.343Z-12.362
X16.253Z-12.343
X16.163Z-12.337
X15.803
X15.713Z-12.352
X15.623Z-12.372
X15.533Z-12.377
X11.397
X11.228Y0.713
X14.303
X14.393Z-12.331
X14.483Z-12.208
X14.574Z-12.106
X14.664Z-12.012
X14.755Z-11.912
X14.845Z-11.833
X14.936Z-11.758
"

Скриптом я нахожу в тексте "F300.0" (как это сделать мне понятно), но дальше, мне нужно какимто образом узнать номер строчки, на которой находится этот "F300.0", и 34 строчки ниже, в конце 34й строчки дописать текст "F7000.0"...
Причем, текст всегда отличается, стабильным только является "F300.0" и 34 строки.

Проблема в том, что сколько не искал, не нашел каких-либо функций на распознание строк в тексте (( Помогите ((
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.10.2013, 12:05
Ответы с готовыми решениями:

начал изучать php. как реализовать одну простую штуку
начал изучать php. как реализовать одну простую штуку... <form action="" name="form"...

Paint - Не получается реализовать простую отрисовку кистью
делаю Paint (рисовалку), не получается реализовать простую отрисовку кистью, надо чтобы при...

Я хочу заказать простую программу
Привет всем. Я хочу заказать простую программу FTP клиента на DELPHI Embarcadero RAD Studio XE...

Сделать простую задачу VBA
Помогите пожалуйста

4
0 / 0 / 1
Регистрация: 02.10.2013
Сообщений: 9
02.10.2013, 15:15 2
строки в файле? если да то читаете файл, он станет массивом, а там уже по ключу определяете номер строки
рекомендую ознакомится с
ХЭТЭТЭПЭ://php.net/manual/ru/function.file.php
0
20 / 19 / 9
Регистрация: 24.05.2011
Сообщений: 89
02.10.2013, 15:35 3
Можно как то так.
ну потом конечно это всё надо будет собрать обратно в строку.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
    header('Content-Type: text/html; charset=utf-8');
    $str = "T1M6
G0Z25.000
G0X0.000Y0.000S25000M3
G0X16.900Y-0.878Z25.000
G1Z12.623F300.0
G1X16.973
X17.264
X18.303Y-0.686
X13.209
X12.744Y-0.486
X19.385
X20.467Y-0.286
X12.279
X11.952Y-0.146
X11.902Y-0.086
X21.549
X21.966Y-0.009
X22.049Y0.006Z-12.377
X22.632Y0.114
X11.734
X11.565Y0.313
X23.714
X24.796Y0.513
X16.432
X16.343Z-12.362
X16.253Z-12.343
X16.163Z-12.337
X15.803
X15.713Z-12.352
X15.623Z-12.372
X15.533Z-12.377
X11.397
X11.228Y0.713
X14.303
X14.393Z-12.331
X14.483Z-12.208
X14.574Z-12.106
X14.664Z-12.012
X14.755Z-11.912
X14.845Z-11.833
X14.936Z-11.758
";
 
    $str = explode("\n", $str);
    $i = 0;
    foreach ($str as $k => $v) {
        $pos = strpos($v, 'X14.303');
        if (false === $pos) {
            if ($k === 34) {
                echo $v . 'F7000.0<br />';
            }
        } else {
            echo '№ строки: ' . $k . '<br />';
        }
 
    }
?>
0
Ostap_Boyko
02.10.2013, 17:22 4
Цитата Сообщение от rr32btg Посмотреть сообщение
строки в файле? если да то читаете файл, он станет массивом, а там уже по ключу определяете номер строки
рекомендую ознакомится с
ХЭТЭТЭПЭ://php.net/manual/ru/function.file.php

Так и собирался делать, но вот реализовать "а там уже по ключу определяете номер строки" не получается (( не могу найти информацию, где конкретно пример есть как работать с этими "ключами" ((

Добавлено через 51 секунду
Цитата Сообщение от SvSerg Посмотреть сообщение
Можно как то так.
ну потом конечно это всё надо будет собрать обратно в строку.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
    header('Content-Type: text/html; charset=utf-8');
    $str = "T1M6
G0Z25.000
G0X0.000Y0.000S25000M3
G0X16.900Y-0.878Z25.000
G1Z12.623F300.0
G1X16.973
X17.264
X18.303Y-0.686
X13.209
X12.744Y-0.486
X19.385
X20.467Y-0.286
X12.279
X11.952Y-0.146
X11.902Y-0.086
X21.549
X21.966Y-0.009
X22.049Y0.006Z-12.377
X22.632Y0.114
X11.734
X11.565Y0.313
X23.714
X24.796Y0.513
X16.432
X16.343Z-12.362
X16.253Z-12.343
X16.163Z-12.337
X15.803
X15.713Z-12.352
X15.623Z-12.372
X15.533Z-12.377
X11.397
X11.228Y0.713
X14.303
X14.393Z-12.331
X14.483Z-12.208
X14.574Z-12.106
X14.664Z-12.012
X14.755Z-11.912
X14.845Z-11.833
X14.936Z-11.758
";
 
    $str = explode("\n", $str);
    $i = 0;
    foreach ($str as $k => $v) {
        $pos = strpos($v, 'X14.303');
        if (false === $pos) {
            if ($k === 34) {
                echo $v . 'F7000.0<br />';
            }
        } else {
            echo '№ строки: ' . $k . '<br />';
        }
 
    }
?>

В твоем примере все завязано на нахождении "X14.303" но у меня параметры постоянно меняются, сейчас там "X14.303", а в следующий раз чтото совесем другое...
20 / 19 / 9
Регистрация: 24.05.2011
Сообщений: 89
02.10.2013, 18:15 5
Цитата Сообщение от Ostap_Boyko Посмотреть сообщение
В твоем примере все завязано на нахождении "X14.303" но у меня параметры постоянно меняются, сейчас там "X14.303", а в следующий раз чтото совесем другое...
Ну F300 , стабильно есть, значит немного меняем одну строку.
Почитай повнимательнее про функцию strpos()
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
    header('Content-Type: text/html; charset=utf-8');
    $str = "T1M6
G0Z25.000
G0X0.000Y0.000S25000M3
G0X16.900Y-0.878Z25.000
G1Z12.623F300.0
G1X16.973
X17.264
X18.303Y-0.686
X13.209
X12.744Y-0.486
X19.385
X20.467Y-0.286
X12.279
X11.952Y-0.146
X11.902Y-0.086
X21.549
X21.966Y-0.009
X22.049Y0.006Z-12.377
X22.632Y0.114
X11.734
X11.565Y0.313
X23.714
X24.796Y0.513
X16.432
X16.343Z-12.362
X16.253Z-12.343
X16.163Z-12.337
X15.803
X15.713Z-12.352
X15.623Z-12.372
X15.533Z-12.377
X11.397
X11.228Y0.713
X14.303
X14.393Z-12.331
X14.483Z-12.208
X14.574Z-12.106
X14.664Z-12.012
X14.755Z-11.912
X14.845Z-11.833
X14.936Z-11.758
";
 
    $str = explode("\n", $str);
    $i = 0;
    foreach ($str as $k => $v) {
        $pos = strpos($v, 'F300.0'); // находим Ф300
        if (false === $pos) {
            if ($k === 34) {
                echo $v . 'F7000.0<br />';
            }
        } else {
            echo '№ строки: ' . ($k + 1) . '<br />';
        }
 
    }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.10.2013, 18:15
Помогаю со студенческими работами здесь

как cделать простую задачу на С++
Проверить, есть ли одинаковые цифры в смежных разрядах. (пожалуйста напишите код очень нужно,...

Помогите решить простую задачу по C++
Так получилось, но пропустил все пары по c++, а задачу решить надо... Вот она: enum K { one,...

Не могу разобрать простую задачу
Разработать функцию min(a,b) для нахождения минимального из двух чисел. Вычислить с помощью нее...

Не могу понять простую задачу по программированию
Задача на фотографии. Собственно, код мне не нужен, его я и сам напишу. Я просто не могу понять...


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

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

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