Русское сообщество по скриптингу

Отличие fwrite_raw от fwrite_block

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Отличие fwrite_raw от fwrite_block

Сообщение NEoMASTERR » 11 май 2017, 16:40

Здравствуйте.
При записи через fwrite_raw в файл пишутся какие то случайные цифры
Код: Выделить всё
Write kek a 1 2 3
Write kek o 4 5 6
Write kek k 7
Read kek a 57484664 57482376 1748973404
Read kek o 49138368 6 9629272
Read kek k 57501544
при fwrite_block всё нормально:
Код: Выделить всё
Write kek a 1 2 3
Write kek o 4 5 6
Write kek k 7
Read kek a 1 2 3
Read kek o 4 5 6
Read kek k 7
Чем они отличаются и для чего fwrite_raw? Может я неправильно его использую?
Код: Выделить всё
#include <amxmodx>
new g_Kekfile[255];
public plugin_init()
{
    
    get_localinfo
("amxx_configsdir", g_Kekfile, charsmax(g_Kekfile))
    add(g_Kekfile, charsmax(g_Kekfile), "/test.bin")
    test_num()
    
    delete_file
(g_Kekfile)
}

public test_num()
{
    enum bla
    
{
        a[3],
        o[3],
        k
    
}
    static kek[bla] = 
    
{
        { 1, 2, 3 },
        { 4, 5, 6 },
        7
    
}
    
    static f
; f = fopen(g_Kekfile, "wb+")
    if (!f) set_fail_state("kek not kek!")
    
    server_print
("Write kek a %d %d %d", kek[a][0], kek[a][1], kek[a][2])
    server_print("Write kek o %d %d %d", kek[o][0], kek[o][1], kek[o][2])
    server_print("Write kek k %d", kek[k])
    
    
//fwrite_raw(f, kek, sizeof kek, BLOCK_INT)    
    fwrite_blocks(f, kek, sizeof kek, BLOCK_INT)

    fseek(f, 0, SEEK_SET)

    // fread_raw(f, kek, sizeof kek , BLOCK_INT)
    fread_blocks(f, kek ,sizeof kek, BLOCK_INT)

    server_print("Read kek a %d %d %d", kek[a][0], kek[a][1], kek[a][2])
    server_print("Read kek o %d %d %d", kek[o][0], kek[o][1], kek[o][2])
    server_print("Read kek k %d", kek[k])
    
    fclose
(f)


Добавлено спустя 4 минуты 54 секунды:
Пробовал записывать как Вы должны зарегистрироваться, чтобы видеть ссылки.
Код: Выделить всё
fwrite_raw(fkek[0], sizeof kek[] ...
fwrite_raw(fkek[0], sizeof kek ... 

Результат либо тот же, либо sizeof возвращает 1 вместо 7 и записывается только первая часть опять же из рандомного набора цифр
Аватара пользователя
NEoMASTERR
 
Сообщения: 832
Зарегистрирован: 05 янв 2015, 16:38
Благодарил (а): 43 раз.
Поблагодарили: 188 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: Отличие fwrite_raw от fwrite_block

Сообщение Dart_Begep » 11 май 2017, 16:58

Аватара пользователя
Dart_Begep
 
Сообщения: 131
Зарегистрирован: 19 апр 2017, 22:29
Благодарил (а): 11 раз.
Поблагодарили: 27 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
Php
JavaScript

Re: Отличие fwrite_raw от fwrite_block

Сообщение NEoMASTERR » 11 май 2017, 17:00

Аватара пользователя
NEoMASTERR
 
Сообщения: 832
Зарегистрирован: 05 янв 2015, 16:38
Благодарил (а): 43 раз.
Поблагодарили: 188 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: Отличие fwrite_raw от fwrite_block

Сообщение RevCrew » 11 май 2017, 17:52

Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1648
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 273 раз.
Поблагодарили: 357 раз.
Языки программирования: Unkown


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 15