Помогите,перезапись элемента массива. - Visavi.net https://visavi.net/ RSS - Visavi.net https://visavi.net/assets/img/images/logo_small.png RSS - Visavi.net https://visavi.net/ [email protected] (admin) [email protected] (admin) Sun, 05 May 2024 22:43:52 +0300 Переписал класс, вот современный способ перезаписи ячейки 16 в строке 15<br> <pre class="prettyprint">&lt;?php $fly = new Visavi\FlyString(&#039;test.txt&#039;, &#039;&#58;||&#58;&#039;); $fly-&gt;cell(14, 15, &#039;new value&#039;); </pre> <br> и все больше никаких действий не нужно<br> <br> кому интересно класс FlyString лежит на гитхабе <a href="https://github.com/visavi/flystring" target="_blank" rel="nofollow">https://github.com/visavi/flystring</a> https://visavi.net/topics/42420/683984 Помогите,перезапись элемента массива. Вантуз-мен Wed, 17 Jun 2015 17:14:33 +0300 Сообщения https://visavi.net/topics/42420/683984 15. <strong>dzhems</strong>, ну я бы не спрашивал если было бы не решаемо https://visavi.net/topics/42420/683967 Помогите,перезапись элемента массива. Вантуз-мен Wed, 17 Jun 2015 00:09:43 +0300 Сообщения https://visavi.net/topics/42420/683967 14. <strong>Vantuz</strong>, Сходу затрудняюсь ответить,но подумаю<img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile"> Это точно решаемо? https://visavi.net/topics/42420/683965 Помогите,перезапись элемента массива. Евгений Tue, 16 Jun 2015 23:58:31 +0300 Сообщения https://visavi.net/topics/42420/683965 12. <strong>dzhems</strong>, === проверка на идентичность, а == обычное сравнение<br> вот тебе вопрос на засыпку<br> <br> <pre class="prettyprint">&lt;?php $x = ?; if ($x == 1 &amp;&amp; $x == 2) { echo &#039;чему должна быть равна $x чтобы это условие выполнилось&#039;; }</pre> <br> <em><span style="font-size:x-small">Добавлено через 02:27 сек.</span></em><br> 11. <strong>dzhems</strong>, не знаю что там перезаписывает, я тестировал все работает нормально https://visavi.net/topics/42420/683962 Помогите,перезапись элемента массива. Вантуз-мен Tue, 16 Jun 2015 22:30:35 +0300 Сообщения https://visavi.net/topics/42420/683962 Всё ура,ещё вчерашний мой код заработал...вместо $intmaps[$i] file[i] было написано.Невнемательность.вот рабочий кусок может кому пригодится...<br> <pre class="prettyprint">&#91;color=#0000ff]$x=(int)$_GET&#91;&#039;x&#039;]; $y=(int)$_GET&#91;&#039;y&#039;]; if($_GET&#91;&#039;select&#039;]!=&#039;&#039; and is_file($cms.&#039;img/part_map/&#039;.$_GET&#91;&#039;select&#039;])){ $select_part=$_GET&#91;&#039;select&#039;]; $select_part=substr($select_part,0,-4); echo &#039;Координаты&#58; &#039;.$x.&#039; - &#039;.$y.&#039; -s- &#039;.$select_part.&#039;&lt;br/&gt;&#039;; $intmaps=&#64;file($cms.&#039;world/data/map/map.txt&#039;); $count=count($intmaps); //подсчитываем количество строк $fp=fopen($cms.&#039;world/data/map/map.txt&#039;,&quot;w&quot;); //очищаем файл for($i=0;$i&lt;$count;$i++) //создаём цикл,кол-во оборотов = количиству строк { if($i!=$x){fwrite($fp,$intmaps&#91;$i]);}else{ $fmap=explode(&quot;&#58;||&#58;&quot;,$intmaps&#91;$x]); $fmap&#91;$y]=$select_part; $intmaps&#91;$x]=implode(&quot;&#58;||&#58;&quot;,$fmap); fwrite($fp,$intmaps&#91;$i]); } }fclose($fp); //закончили работать с файлом&#91;/color]</pre> https://visavi.net/topics/42420/683959 Помогите,перезапись элемента массива. Евгений Tue, 16 Jun 2015 20:28:05 +0300 Сообщения https://visavi.net/topics/42420/683959 <pre class="prettyprint">if ($line === $key) { </pre> Это опечатка в классе(3 равно) или так и должно? https://visavi.net/topics/42420/683955 Помогите,перезапись элемента массива. Евгений Tue, 16 Jun 2015 19:36:01 +0300 Сообщения https://visavi.net/topics/42420/683955 Использую функцию,что написано выше - всё должно работать,но просто перезаписывает исходные данные в файле,в чём может быть дело не подскажите? https://visavi.net/topics/42420/683954 Помогите,перезапись элемента массива. Евгений Tue, 16 Jun 2015 19:21:30 +0300 Сообщения https://visavi.net/topics/42420/683954 Тем классом что я написал будет вот так<br> <pre class="prettyprint">&lt;?php $fly = new Visavi\FlyString(&#039;test.txt&#039;, &#039;&#58;||&#58;&#039;); $string = $fly-&gt;read(15); $string&#91;16] = &#039;new value&#039;; array_pop($string); $fly-&gt;replace(15, $string); </pre> <br> только учти что нумерация начинается с нуля, тебе скорее всего нужно 14 и 15<br> <br> я потом оптимизирую чтобы массив возвращался без перевода строки и не нужно было удалять последний элемент array_pop($string); <br> или вообще сделаю метод замены ячейки в строке<br> <br> Но сейчас я хочу переписать чтобы открытие файла происходило не через file, а через fopen и уже там управлять курсором, это более безопасно, сэкономит память и можно будет работать с большими файлами<br> <br> но к твоей задаче это не относится https://visavi.net/topics/42420/683953 Помогите,перезапись элемента массива. Вантуз-мен Tue, 16 Jun 2015 18:36:55 +0300 Сообщения https://visavi.net/topics/42420/683953 5. <strong>Vantuz</strong>, Массив-матрица 20 на 20 к примеру...в 15 строке 16 ячейку меняем...Всё остальное не изменяется соответственно https://visavi.net/topics/42420/683952 Помогите,перезапись элемента массива. Евгений Tue, 16 Jun 2015 18:02:36 +0300 Сообщения https://visavi.net/topics/42420/683952 7. <strong>dzhems</strong>, на работе задач не было вот быстренько накидал <a href="https://github.com/visavi/flystring" target="_blank" rel="nofollow">https://github.com/visavi/flystring</a><br> можешь через композер установить https://visavi.net/topics/42420/683950 Помогите,перезапись элемента массива. Вантуз-мен Tue, 16 Jun 2015 16:47:40 +0300 Сообщения https://visavi.net/topics/42420/683950 6. <strong>Vantuz</strong>, Спасибо буду разбираться. https://visavi.net/topics/42420/683935 Помогите,перезапись элемента массива. Евгений Tue, 16 Jun 2015 13:01:37 +0300 Сообщения https://visavi.net/topics/42420/683935 В старом моторе были неплохие функции для работы с такими видами данных в файлах<br> к примеру <a href="https://github.com/visavi/wap-motor/blob/master/includes/functions.php#L275" target="_blank" rel="nofollow">https://github.com/visavi/wap-motor/blob/master/includes/functions.php#L275</a><br> поиск элемента в строках возвращает данные строки массив и номер строки<br> только замени сепаратор с | на то что тебе нужно в твоем случае :||:<br> <br> <a href="https://github.com/visavi/wap-motor/blob/master/includes/functions.php#L294" target="_blank" rel="nofollow">https://github.com/visavi/wap-motor/blob/master/includes/functions.php#L294</a><br> Чтение строки из файла передаешь номер строки возвращается массив (тоже поменяй сепаратор)<br> <br> ну и замена строки в файле<br> <a href="https://github.com/visavi/wap-motor/blob/master/includes/functions.php#L239" target="_blank" rel="nofollow">https://github.com/visavi/wap-motor/blob/master/includes/functions.php#L239</a> https://visavi.net/topics/42420/683932 Помогите,перезапись элемента массива. Вантуз-мен Tue, 16 Jun 2015 11:48:47 +0300 Сообщения https://visavi.net/topics/42420/683932 3. <strong>dzhems</strong>, я не могу понять это полностью массив или строки, если полностью почему тогда переводы строк<br> в какой именно строке тебе нужно поменять и какой именно элемент<br> <br> то что ты написал это не массив это обычная строка (string) https://visavi.net/topics/42420/683930 Помогите,перезапись элемента массива. Вантуз-мен Tue, 16 Jun 2015 11:38:33 +0300 Сообщения https://visavi.net/topics/42420/683930 1. <strong>dzhems</strong>, я думаю если ты объяснишь более подробно что тебе надо, то помощь получишь намного быстрее.<br> Выложи пример файла, размером 5 строк с самого начала и между какими символами вставлять\заменять. https://visavi.net/topics/42420/683926 Помогите,перезапись элемента массива. Антон Tue, 16 Jun 2015 05:14:30 +0300 Сообщения https://visavi.net/topics/42420/683926 массив в txt файле хранится,элементы между сплитом. вот такой код получился,но почему то перезаписывает элемент в первый символ.Что не так подскажите.<br> <pre class="prettyprint"> $x=(int)$_GET&#91;&#039;x&#039;]; $y=(int)$_GET&#91;&#039;y&#039;]; if($_GET&#91;&#039;select&#039;]!=&#039;&#039; and is_file($cms.&#039;img/part_map/&#039;.$_GET&#91;&#039;select&#039;])){ $intmaps=&#64;file($cms.&#039;world/data/map/map.txt&#039;); $count=count($intmaps); //подсчитываем количество строк $line_map=$x; // строка for($i=0;$i&lt;$count;$i++) //создаём цикл,кол-во оборотов = количиству строк { if($i!=$line_map){fwrite($fp,$file&#91;$i]);}else{ $fmap=explode(&quot;&#58;||&#58;&quot;,$intmaps&#91;$x]); $selest_part=$_GET&#91;&#039;select&#039;]; $selest_part=substr($selest_part,0,-4); $fmap&#91;$y]=$selest_part; $intmaps&#91;$x]=implode(&quot;&#58;||&#58;&quot;,$fmap); $fp=fopen($cms.&#039;world/data/map/map.txt&#039;,&quot;w&quot;); //очищаем файл foreach($intmaps as $key =&gt; $value){ if($value!=&quot;&quot;){&#64;fputs($fp,$value);}} } }fclose($fp); //закончили работать с файлом </pre> https://visavi.net/topics/42420/683922 Помогите,перезапись элемента массива. Евгений Tue, 16 Jun 2015 00:33:02 +0300 Сообщения https://visavi.net/topics/42420/683922