Спустя 14 дней, 22 часа, 58 минут, 11 секунд (4.05.2010 - 22:16) Mirexzpalich написал(а):
Тихо в теме. Кароч. все решено. Но осталась проблемма. У мну все хранится в файле, в котором хранятся строчки типа:
11111111111#+#
И таких строчек множество. При работе с файлом приходится постоянно его открывать и закрывать. А таких операций не мало. Есть ли что то подобное Memo в Delphy?
Если нет, то как можно организовать это хранение? (Массивы не предлагать)
11111111111#+#
И таких строчек множество. При работе с файлом приходится постоянно его открывать и закрывать. А таких операций не мало. Есть ли что то подобное Memo в Delphy?
Если нет, то как можно организовать это хранение? (Массивы не предлагать)
Спустя 4 минуты, 35 секунд (4.05.2010 - 22:21) Unlikely написал(а):
Мемо в делфи просто же выводит текст из файла?
Спустя 27 минут, 54 секунды (4.05.2010 - 22:49) dr_Lev написал(а):
есть функция file - читает содержимое файла и помещает его в массив (функция file())
Спустя 37 секунд (4.05.2010 - 22:50) Mirexzpalich написал(а):
Оно может и не выводить. Можно просто в memo хранить. Т.е. в оперативной памяти, а не на харде.
Спустя 55 секунд (4.05.2010 - 22:50) Mirexzpalich написал(а):
Цитата (dr_Lev @ 4.05.2010 - 19:49) |
есть функция file - читает содержимое файла и помещает его в массив (функция file()) |
Я вообще хочу не трогать файлы.
Спустя 9 минут, 56 секунд (4.05.2010 - 23:00) zarafar написал(а):
Не совсем понятно, что вы хотите сделать.
У вас в файле куча строчек. Вы парсите файл и хотите хранить результат в памяти, и чтобы данные были доступны, после окончании работы скрипта другим скриптам ?
И как вы храните свое дерево, если не в массиве ?
У вас в файле куча строчек. Вы парсите файл и хотите хранить результат в памяти, и чтобы данные были доступны, после окончании работы скрипта другим скриптам ?
И как вы храните свое дерево, если не в массиве ?
Спустя 14 минут, 3 секунды (4.05.2010 - 23:14) dr_Lev написал(а):
Цитата (Mirexzpalich @ 4.05.2010 - 22:16) |
При работе с файлом приходится постоянно его открывать и закрывать |
Один раз прочитай из файла в массив и работай спокойно с массивом, не трогай больше файл
$strings = file('твой файл'); /* прочитал строки в массив */
/* работа с массивом */
echo $strings[23];
echo $strings[345645];
Цитата |
Я вообще хочу не трогать файлы. |
Ну ту ты меня уже в ступор вогнал...
Спустя 13 минут, 6 секунд (4.05.2010 - 23:28) Mirexzpalich написал(а):
Цитата (Mirexzpalich @ 4.05.2010 - 19:16) |
Если нет, то как можно организовать это хранение? (Массивы не предлагать) |
Про массивы я и сам неплохо знаю!!!!!!!!
Мой вопрос звучит так:
как можно организовать это хранение? (Массивы не предлагать)
Может ООП? Но в нем я не силен.
Спустя 9 минут, 10 секунд (4.05.2010 - 23:37) zarafar написал(а):
Mirexzpalich
Видимо все таки вы плохо знаете массивы, либо сами не знаете чего хотите. ООП вам не поможет в данном случае, пока вы не научитесь излагать свои мысли.
Из того, как вы изложили свой вопрос, dr_Lev вам привел пример, как это делается "правильно".
Если вас не понимают, попробуйте спросить по-другому.
Видимо все таки вы плохо знаете массивы, либо сами не знаете чего хотите. ООП вам не поможет в данном случае, пока вы не научитесь излагать свои мысли.
Из того, как вы изложили свой вопрос, dr_Lev вам привел пример, как это делается "правильно".
Если вас не понимают, попробуйте спросить по-другому.
Спустя 1 минута, 24 секунды (4.05.2010 - 23:38) Raito-kun написал(а):
приплетать объекты в такой тривиальной задаче?... как по мне вообще нерационально. вам сказали варианты - массив и файл. что не устраивает? можно ответить без капса, <b> и 15ого шрифта.
Спустя 9 часов, 46 минут, 4 секунды (5.05.2010 - 09:24) Mirexzpalich написал(а):
Еще раз.
Про работу с массивами я и сам неплохо знаю! Меня интересуют еще и ДРУГИЕ СПОСОБЫ РЕШЕНИЯ ЭТОЙ ПРОБЛЕМЫ.
Так наверное понятнее?
Про работу с массивами я и сам неплохо знаю! Меня интересуют еще и ДРУГИЕ СПОСОБЫ РЕШЕНИЯ ЭТОЙ ПРОБЛЕМЫ.
Так наверное понятнее?
Спустя 23 минуты, 17 секунд (5.05.2010 - 09:47) dr_Lev написал(а):
Вроде я понял что тебе нужно...
Вот объект для хранения дерева (писал на колене, заранее прошу прощения за возможные ошибки)
Вот объект для хранения дерева (писал на колене, заранее прошу прощения за возможные ошибки)
class tree{
public $value; // значение
public $id; // идентификатор
public $parent_id = 0; // идентификатор родительского элемента
public $nodes = array(); // массив дочерних элементов
public function __construct($value, $id){ // конструктор, получает значение и идентификатор
$this->value = $value;
$this->id = $id;
}
/* метод добавления элемента, получает объект(tree) или значение с идентификатором */
public function AddNode($value, $id = 0){
if (is_a($value, 'tree')){
$value->parent_id = $this->id;
$this->nodes[] = $value;
}else{
$node = new tree($value, $id);
$this->nodes[] = $node;
}
}
/* метод вставки элемента, получает идентификатор родительского элемента, объект(tree) или значение с идентификатором */
public function InsertNode($parent_id, $value, $id = 0){
if (!is_a($value, 'tree')){
$value = new tree($value, $id);
}
if ($parent_id == $this->id){
$this->AddNode($value);
return true;
}else{
foreach($this->nodes as $node){
if ($node->InsertNode($parent_id, $value)){
return true;
}
}
}
return false;
}
/* метод удаления эелемена по идентификатору */
public function DelNode($id){
foreach ($this->nodes as $index=>$node){
if ($node->id == $id){
unset($this->nodes[$index]); // можно оставить и так, если не нужно строгое индексирование массива
return true;
}else{
if ($node->DelNode($id)){
return true;
}
}
}
return false;
}
/* метод получения элемента по идентификатору */
public function GetNode($id){
if ($this->id == $id){
return $this;
}
foreach ($this->nodes as $node){
$finded = $node->GetNode($id);
if (is_a($finded, 'tree')){
return $finded;
}
}
return NULL;
}
}
Спустя 3 часа, 15 минут, 35 секунд (5.05.2010 - 13:03) Mirexzpalich написал(а):
dr_Lev, спасибо большое. Но не обязательно было писать код. Мне хватило бы и теории. Спасибо еще раз.
_____________
Дорогу осилит идущий...