IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> загрузить бинарный файл в массив, php
сообщение
Сообщение #1


Знаток
****

Группа: Пользователи
Сообщений: 396
Пол: Мужской

Репутация: -  9  +


сдрасте
у меня есть двоичный файл размер 14 байт (14 чисел), созданный в делфях

мне нужно загрузить на пхп этот файл в массив... сделать изменения в числах... сохранить этот файл обратно
я это делаю так (загружаю)
Код

<?php
$data=file('data.dat');
$x=$data[0]+$data[1]+5;
echo $x.'<br>';
echo ($data[2].'<br>';
?>

на экран выходит одно число "5"

ЗЫ. почему-то при написании программ на пхп многие переменные у меня начинаются на n x s b pi

Сообщение отредактировано: Rian -


--------------------
Objective-C, Unity3d
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 396
Пол: Мужской

Репутация: -  9  +


ну правда надо


--------------------
Objective-C, Unity3d
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Rian @ 1.07.2010 21:40) *
у меня есть двоичный файл размер 14 байт (14 чисел), созданный в делфях
...
на экран выходит одно число "5"

Ты правда полагаешь, что можешь читать двоичную информацию без указания формата данных? откуда машине знать, как ты писал?..

Самое лучшее - записывать текст, если уж ты сам его пишешь, и читать текст.
Двоичная информация - она МАШИНОЗАВИСИМА, что в корне противоречит идеологии PHP. Это неверный подход по своей сути. Постарайся этого избежать, если это возможно.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Знаток
****

Группа: Пользователи
Сообщений: 396
Пол: Мужской

Репутация: -  9  +


sad.gif от невдобство
значит будем обходиться без двоичной


--------------------
Objective-C, Unity3d
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Rian @ 5.07.2010 15:34) *
sad.gif от невдобство

В чем именно неудобство?
Длинный файл? 14 или там 100 байт? не смеши ))
Не хочешь, чтоб файл был читабельным? Бинарность все равно не защита - шифруй.
Кроссплатформенность - сильное требование, и оно вполне оправдано. Имей это в виду, когда программируешь для www.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Знаток
****

Группа: Пользователи
Сообщений: 396
Пол: Мужской

Репутация: -  9  +


Цитата(Lapp @ 6.07.2010 3:32) *

В чем именно неудобство?

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

если может вы догадались это для калаха файл имеет структуру
666 666 0 666 666 0

вот и в ячейке вполне может существовать число состоящих из двух символов 12 0 6 0 12 6
я хотел избавится от перехода из текстового режима в двоичный

так.. хотя там вроде есть функция "explode" кажется так? которая упрощает это дело

ЗЫ а если бы мне нужно было делать лабораторку и препод сказал: "Расшибись но сделай бинарным"?


--------------------
Objective-C, Unity3d
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Rian @ 6.07.2010 20:56) *
удобно, что не нужно преобразовывать типы, ну и место экономится)))
если может вы догадались это для калаха файл имеет структуру
666 666 0 666 666 0

вот и в ячейке вполне может существовать число состоящих из двух символов 12 0 6 0 12 6
я хотел избавится от перехода из текстового режима в двоичный
Не нужно экономить место. Какой смысл, если файл все равно занимает как минимум блок? blink.gif
Хорошо, если появилось смысловое наполнение, скажу по нему.
Гораздо удобнее, когда файл текстовый. Держу пари, тебе захочется (при отладке или потом, так как ошибки могут вылезти в любое время при эксплуатации) однажды БЫСТРО проверить на каких-то конкретных данных. Что ты будешь делать? Самое простое - в любом редакторе создать текстовый файл и на нем все опробовать.

Цитата
так.. хотя там вроде есть функция "explode" кажется так? которая упрощает это дело
есть explode(), есть str_split() и не только. В PHP все заточено под строки. Вникни в эту концепцию, и ты увидишь, что это удобно и правильно. Потом начнешь привлекать регулярные выражения, и уже не сможешь без строк, потому что это часть функциональности языка, а не просто формат данных.

Цитата
ЗЫ а если бы мне нужно было делать лабораторку и препод сказал: "Расшибись но сделай бинарным"
Тогда fread(), например. Читаешь файл в строку, а потом строку разбираешь по байтам ручками..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.04.2024 21:17
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name