Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: А возможно ли считать из файла...
 
 автор: Юный Хакер   (19.08.2005 в 21:17)
 
 

Имеется файл base.db, который содержит записи, созданные на паскале
type
name:string[20];
surname:string[40];
age:integer;
end;
Возможно ли считать определенную запись из этого файла в массив $person???
Жду заветную ссылку от ГУРУ этого форума:))

   
 
 автор: cheops   (19.08.2005 в 22:19)   письмо автору
 
   для: Юный Хакер   (19.08.2005 в 21:17)
 

Имеется ввиду бинарный файл? А нельзя ли его прикрепить к теме, чтобы потестировать код разборщика?

   
 
 автор: Юный Хакер   (20.08.2005 в 12:23)
 
   для: cheops   (19.08.2005 в 22:19)
 

Да, бинарный файл=)

   
 
 автор: Юный Хакер   (20.08.2005 в 12:55)
 
   для: Юный Хакер   (20.08.2005 в 12:23)
 

А вот и файлик)))
В файле 3 записи...
))

   
 
 автор: cheops   (20.08.2005 в 13:05)   письмо автору
 
   для: Юный Хакер   (20.08.2005 в 12:23)
 

Pascal их кладёт друг за другом или помещает между ними байты-разделители?

   
 
 автор: Юный Хакер   (20.08.2005 в 13:09)
 
   для: cheops   (20.08.2005 в 13:05)
 

А я не знаю)))
Вроде, друг за другом.
=))

   
 
 автор: cheops   (20.08.2005 в 14:19)   письмо автору
 
   для: Юный Хакер   (20.08.2005 в 13:09)
 

Судя по всему записи разделяются чем-то... вы бы не могли без Integer в конце записать файл? Пока у меня получилось вот что
<?php 
  $filename 
"user.db";
  
$fd fopen($filename,"r");
  
$buffer fread($fd,filesize($filename));
  
fclose($fd);
  
$pos ord(substr($buffer,0,1));
  
$arr['name'][] = substr($buffer,1,$pos);
  
$pos ord(substr($buffer,21,1));
  
$arr['surname'][] = substr($buffer,22,$pos);
  
$pos ord(substr($buffer,64,1));
  
$arr['age'][] = $pos;
  echo 
"<pre>";
  
print_r($arr);
  echo 
"</pre>";
?>

но чтобы загнать это в цикл, нужно определить сколько символов отводится под одну запись.

   
 
 автор: Юный Хакер   (20.08.2005 в 14:26)
 
   для: cheops   (20.08.2005 в 14:19)
 

Спасибо))
вот еще один файлик, без integer=)

   
 
 автор: cheops   (20.08.2005 в 14:43)   письмо автору
 
   для: Юный Хакер   (20.08.2005 в 14:26)
 

Хм... ну что-то начинает прорисовываться...
<?php 
  $filename 
"user.db";
  
$fd fopen($filename,"r");
  
$buffer fread($fd,filesize($filename));
  
fclose($fd);
  
$i 1;
  while(
true)
  {
    
$begin = ($i 1)*62;
    
$pos ord(substr($buffer,$begin,1));
    
$arr['name'][] = substr($buffer,$begin 1,$pos);
    
$pos ord(substr($buffer,$begin 20 11));
    
$arr['surname'][] = substr($buffer,$begin 20 2$pos);
//  $pos = ord(substr($buffer,64,1));
//  $arr['age'][] = $pos;
    
$i++;
    if((
$i 1)*62 strlen($buffer)) break;
  }
  echo 
"<pre>";
  
print_r($arr);
  echo 
"</pre>";
?>

   
 
 автор: cheops   (20.08.2005 в 14:50)   письмо автору
 
   для: cheops   (20.08.2005 в 14:19)
 

Для первого файла можно использоваться следующий скрипт
<?php 
  $filename 
"user.db";
  
$fd fopen($filename,"r");
  
$buffer fread($fd,filesize($filename));
  
fclose($fd);
  
$i 1;
  while(
true)
  {
    
$begin = ($i 1)*68;
    
$pos ord(substr($buffer,$begin,1));
    
$arr['name'][] = substr($buffer,$begin 1,$pos);
    
$pos ord(substr($buffer,$begin 20 11));
    
$arr['surname'][] = substr($buffer,$begin 20 2$pos);
    
$pos ord(substr($buffer,$begin 20 40 4,1));
    
$arr['age'][] = $pos;
    
$i++;
    if((
$i 1)*68 strlen($buffer)) break;
  }
  echo 
"<pre>";
  
print_r($arr);
  echo 
"</pre>";
?>

   
 
 автор: Юный Хакер   (20.08.2005 в 14:55)
 
   для: cheops   (20.08.2005 в 14:50)
 

Человеческое спасибище)))

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования