powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Работа с файлами и массивами.
12 сообщений из 12, страница 1 из 1
Работа с файлами и массивами.
    #32180904
plankton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите мне опять. :)
Похожая проблема как с картинками.
Но теперь дано файл text.txt в нём написано вот что:
1|платок|сопливый
4|тетрадь|пустая
3|пульт|серый
2|монитор|старый
5|колонки|sven
и в результате мне надо получить
5|колнки|sven
4|тетрадь|пустая
3|пульт|серый
2|монитор|старый
1|платок|сопливый
Вот как сделать? Причём может формат быть немного другим, то есть будет
1| значение 1|значение 2 |значение 3
в общем главное сделать чтобы сортировка была в обратном порядке.
Я вот делаю просто как:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?
$text=fopen( "text.txt" , "r" );
print "<table width=\"  600 \ " align=center>" ;
while (! feof($text)):
 $text1 = fgets($text,  4096 );
 $text2 = explode( "|" , $text1);
		print "<td width=10  bgcolor=#ffff01 valign=top>$ev[ 0 ]</td>";
		print "<td width=90  valign=top>$ev[ 1 ]</td>";
		print "<td width=200  valign=top>$ev[ 2 ]</td>";
		print "</tr>" ;
endwhile;
	print "</table>" ;
	fclose ($text);
?>


А как сделать правильно чтобы так как по моим требованиям? :)
...
Рейтинг: 0 / 0
Работа с файлами и массивами.
    #32182573
Фотография ScableR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты меня убиваешь :)..... Что делает "r" из fopen с файлом, а конкретнее с указателем? Помещает в начало. А тебе что надо? Считать файл с самого конца? Тогда замени енто на "a+". Вот и все :). Удачи.
...
Рейтинг: 0 / 0
Работа с файлами и массивами.
    #32182624
Master Skiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот так попробуй:

<?
$text=file("text.txt","r");

reset ($text);
while (list ($key, $val) = each ($text))
{
$text1 = explode("|", $val);
$text2[$text1[0]] = $text1;
}
arsort($text2, SORT_NUMERIC);

print"<table width=\"600\" align=center>";
reset ($text2);
while (list ($key, $val) = each ($text2))
{
print"<td width=10 bgcolor=#ffff01 valign=top>$val[0]</td>";
print"<td width=90 valign=top>$val</td>";
print"<td width=200 valign=top>$val</td>";
print"</tr>";
}
print"</table>";
?>
...
Рейтинг: 0 / 0
Работа с файлами и массивами.
    #32182705
plankton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо ребята большое. :) очень помогли!
...
Рейтинг: 0 / 0
Работа с файлами и массивами.
    #32182790
Фотография ScableR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда, несколько я припознился, ну да ладно. Думаю такой примерчик подойдет :). Тока, ты сам дойди до того, чтоб в верхушке файла писать что-то типа:
№|Название|Описание
Думаю, что это для тебя теперь будет легко.
Реализовано:
+ Любой формат записи(Хоть <1|значение|значение|значение> или <2|значение>)
+ Вывод в обратном порядке.

Код: plaintext
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.
<?
   $text = FILE( "text.txt" , "r" );
    /* Проходимся построчно по файлу */ 
   FOR ($i =  0 ; $i < COUNT($text); $i++)
   {
      $f_str = $text[$i];
      $f_key = EXPLODE( "|" , $f_str);
      FOR($m =  0 ; $m < COUNT($f_key); $m++)
      { /* Забиваем в массив */ 
         $array[$f_key[ 0 ]][$m] = $f_key[$m];
      }
   }
    /* Сортируем в нужном порядке */ 
   ARSORT($array, SORT_NUMERIC);
   
    /* Начинаем выводить */ 
   ECHO  "<TABLE WIDTH=\"  600 \ " ALIGN=\" center\ ">\n" ;

   FOR ($i =  1 ; $i < COUNT($array)+ 1 ; $i++)
   {
      PRINT  "<TR>\n   <TD WIDTH=\"  10 \ " BGCOLOR=\" RED\ " VALIGN=\" top\ ">" .$array[$i][ 0 ]. "</TD>\n" ;
      FOR ($m =  1 ; $m<COUNT($array[$i]); $m++)
      {
         PRINT  "   <TD WIDTH=\"  90 \ " BGCOLOR=\" YELLOW\ " VALIGN=\" top\ ">" .$array[$i][$m]. "</TD>\n" ;
      }
      PRINT  "</TR>\n" ;
   }

   PRINT  "</TABLE>" ;
?>

Да, кстати, если бы в номерах все шло по порядку, то можно было испоьзовать:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<?
   FOR ($i = COUNT($text); $i >=  0 ; $i --)
 
   {
      ... = $text[$i];
      ...
   }
?>
...
Рейтинг: 0 / 0
Работа с файлами и массивами.
    #32183820
plankton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ага. спасибо. :) теперь буду разбираться что к чему там.
...
Рейтинг: 0 / 0
Работа с файлами и массивами.
    #32184126
Фотография ScableR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну разбирайся :)... Если че непонятно, то спрашивай :)...
...
Рейтинг: 0 / 0
Работа с файлами и массивами.
    #32184819
plankton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да вроде с этим всё понятно. :)
вот тут получается выводится вся инфа, всё клво. а если мне надо вывести так же всю инфу и еще сделать одно поле <input> которое будет содержать число как ID++, то есть первое значение в записи:
1|ляляля|лялялял

как так сделать?
То есть надо сделать:
- вывести всё на экран (ну это я уже знаю с твоей помощью как делать)
- узнать какое значение идёт последнее
- прибавить к нему 1
- присвоить это значение к <input>

то есть меня вообще интересует как сделать
- узнать какое значение идёт последнее
- прибавить к нему 1
а как присвоить я догадаюсь. ))
...
Рейтинг: 0 / 0
Работа с файлами и массивами.
    #32184820
plankton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот сделал сам.
просто дописал вот что:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
.........
      }
      PRINT  "</TR>\n" ;
   }

   PRINT  "</TABLE>" ;
   print  "$i" ;
?>



чего только не сделаешь когда начинаешь эксперементы ставить.
...
Рейтинг: 0 / 0
Работа с файлами и массивами.
    #32184831
plankton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот у меня есть файл формата
1|тапки|грязные
ну и запесей много.. допустим 5 строк. И есть форма где каждая позиция в <input> и радиобуттон тоже есть вот пример формы:.
Код: plaintext
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.
print  "<form action=\" edit.php\ " method=\" post\ " target=_blank>" ;
   FOR ($i =  0 ; $i < COUNT($text); $i++)
   {
      $f_str = $text[$i];
      $f_key = EXPLODE( "|" , $f_str);
      FOR($m =  0 ; $m < COUNT($f_key); $m++)
      { /* Забиваем в массив */ 
         $array[$f_key[ 0 ]][$m] = $f_key[$m];
      }
   }
   ARSORT($array, SORT_NUMERIC);
   ECHO  "<TABLE  ALIGN=\" center\ ">\n" ;

   FOR ($i =  1 ; $i < COUNT($array)+ 1 ; $i++)
   {
      PRINT  "<TR>\n<TD><input type=\" radio\ " name=\" $i\ " value=\" $i\ "> </td>\n <TD width=\"  20 \ " align=center BGCOLOR=\" #e0e0e0\ " VALIGN=\" top\ ">" .$array[$i][ 0 ]. "</TD>\n" ;
      FOR ($m =  1 ; $m<COUNT($array[$i]); $m++)
      {
//         PRINT  "   <TD  VALIGN=\" top\ ">" .$array[$i][$m]. "</TD>\n" ;
		 PRINT  "<td valign=top><input type=\" text\ " value=\"  ".$array[$i][$m]." \ "></td>\n" ;
      }
      PRINT  "</TR>\n" ;
   }
   PRINT  "</TABLE>" ;



и вот надо как-то произвести замену той строки на которой стоит галочка radio, то есть просто переписать строку, прочитал про несколько функций замены строк, но просто не понимаю как передавать всё это в edit.php... я подумал это делать с помощью

substr_replace($la1, $la2, 0.0);
где $la1 у меня получается номер по порядку ($i) которое имеет radiobutton она же совпадет с номером что стоит в начало строки.. а
$la2 у меня должно состоять из:
$la2 = $nomer."|".$name."\n";
А так как у нас может повторяться $i просто в тексте где-то $name мы делаем 0,0 чтобы начиналась замена с первого входа... блин. тогда если будет 55 и 5 будет заменяться и то и другое... а как тогда?
--
хотя вроде тогда такой спопоб вытаскивания не подходит наверное.
---

вообщем помоги плиз советом... ну или примером. :)) а то я запутался нафиг.
...
Рейтинг: 0 / 0
Работа с файлами и массивами.
    #32184834
Фотография ScableR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Несколько не понял, что ты хотел, но возможно ты имел в виду то, что надо изменить в рал тайме? Т.е. пользователь выбрал и надо менять? Если это так, то посмотри среди ЯваСкриптов.
...
Рейтинг: 0 / 0
Работа с файлами и массивами.
    #32184835
Фотография ScableR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да к тому-же ты вообще куда-то полез не туды. В общм просто пересмотри (точнее передумай) то, что тебе надобно сдать. Иначе получиться такой проект, что сам будешь путаться =)
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Работа с файлами и массивами.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]