Помогите,перезапись элемента массива. - Visavi.net
https://visavi.net/
RSS - Visavi.nethttps://visavi.net/assets/img/images/logo_small.pngRSS - Visavi.net
https://visavi.net/
[email protected] (admin)[email protected] (admin)Sat, 23 Nov 2024 05:33:49 +0300Переписал класс, вот современный способ перезаписи ячейки 16 в строке 15<br>
<pre class="prettyprint"><?php
$fly = new Visavi\FlyString('test.txt', ':||:');
$fly->cell(14, 15, 'new value');
</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/68398415. <strong>dzhems</strong>, ну я бы не спрашивал если было бы не решаемо
https://visavi.net/topics/42420/683967
Помогите,перезапись элемента массива. Вантуз-менWed, 17 Jun 2015 00:09:43 +0300Сообщенияhttps://visavi.net/topics/42420/68396714. <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/68396512. <strong>dzhems</strong>, === проверка на идентичность, а == обычное сравнение<br>
вот тебе вопрос на засыпку<br>
<br>
<pre class="prettyprint"><?php
$x = ?;
if ($x == 1 && $x == 2) {
echo 'чему должна быть равна $x чтобы это условие выполнилось';
}</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">[color=#0000ff]$x=(int)$_GET['x']; $y=(int)$_GET['y'];
if($_GET['select']!='' and is_file($cms.'img/part_map/'.$_GET['select'])){
$select_part=$_GET['select']; $select_part=substr($select_part,0,-4);
echo 'Координаты: '.$x.' - '.$y.' -s- '.$select_part.'<br/>';
$intmaps=@file($cms.'world/data/map/map.txt');
$count=count($intmaps); //подсчитываем количество строк
$fp=fopen($cms.'world/data/map/map.txt',"w"); //очищаем файл
for($i=0;$i<$count;$i++) //создаём цикл,кол-во оборотов = количиству строк
{
if($i!=$x){fwrite($fp,$intmaps[$i]);}else{
$fmap=explode(":||:",$intmaps[$x]);
$fmap[$y]=$select_part; $intmaps[$x]=implode(":||:",$fmap);
fwrite($fp,$intmaps[$i]);
}
}fclose($fp); //закончили работать с файлом[/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"><?php
$fly = new Visavi\FlyString('test.txt', ':||:');
$string = $fly->read(15);
$string[16] = 'new value';
array_pop($string);
$fly->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/6839535. <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/6839527. <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/6839506. <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/6839323. <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/6839301. <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['x']; $y=(int)$_GET['y'];
if($_GET['select']!='' and is_file($cms.'img/part_map/'.$_GET['select'])){
$intmaps=@file($cms.'world/data/map/map.txt');
$count=count($intmaps); //подсчитываем количество строк
$line_map=$x; // строка
for($i=0;$i<$count;$i++) //создаём цикл,кол-во оборотов = количиству строк
{
if($i!=$line_map){fwrite($fp,$file[$i]);}else{
$fmap=explode(":||:",$intmaps[$x]);
$selest_part=$_GET['select'];
$selest_part=substr($selest_part,0,-4);
$fmap[$y]=$selest_part; $intmaps[$x]=implode(":||:",$fmap);
$fp=fopen($cms.'world/data/map/map.txt',"w"); //очищаем файл
foreach($intmaps as $key => $value){
if($value!=""){@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