281

(1 відповідей, залишених у C++)

Доброго дня!

Придумав собі наступну проблему.

struct CONFIG {
    char *name;
    int val;
    char *password;
    // char *c_test;
    // int *i_test;
    // double *d_test;
    // ... і ще 100 вказівників
};

Наприклад маємо структуру, а в ній ~100 і більше полей, типу вказівника (по адресах знаходяться дані, які і потрібно записати/зчитати у файл). Ну, і якось не варіант 100 раз робити fread/fwrite, глупо це..

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MLC 20

struct CONFIG {
    char *name;
    int val;
    char *password;
    // char *c_test;
    // int *i_test;
    // double *d_test;
    // ... і ще 100 вказівників
};


struct CONFIG *getCongif() {
    struct CONFIG *sp = malloc(sizeof(struct CONFIG));

    sp->name = strcpy(memset(malloc(MLC), 0, MLC), "root");
    sp->val = 1488;
    sp->password = strcpy(memset(malloc(MLC), 0, MLC), "qwerty");

    return sp;
}


int main() {
//  ------------------------------------------------------------------

    struct CONFIG *s = getCongif();

    FILE *fw, *fr;

    fw = fopen("\\Release\\cfg.bin", "wb");

    fwrite(s->name, MLC, 1, fw);
    fwrite(&s->val, sizeof(int), 1, fw);
    fwrite(s->password, MLC, 1, fw);

    fclose(fw);

    free(s->name);
    free(s->password);

//  ------------------------------------------------------------------

    struct CONFIG *o = malloc(sizeof(struct CONFIG));

    o->name = malloc(MLC);
    o->password = malloc(MLC);

    fr = fopen("\\Release\\cfg.bin", "rb");

    fread(o->name, MLC, 1, fr);
    fread(&o->val, sizeof(int), 1, fr);
    fread(o->password, MLC, 1, fr);

    printf("%s - %d - %s\n", o->name, o->val, o->password);

    fclose(fr);

    free(o->name);
    free(o->password);

//  ------------------------------------------------------------------

    return 0;
}

Як елегантно можна вирішити це питання (аби одним махом обробити всю структуру)?

282

(2 відповідей, залишених у C++)

msdn

А взагалі, бери книжки Ріхтера та Фіногенова.

283

(54 відповідей, залишених у Обговорення)

Прихований текст

Мене дивувало раніше що сайт домен агресора став таким популярним.

Останнім часом, дотримуюся думки про те, що однієї ідеї замало. Аби отримати бажане (гроші/популярність) є два шляхи:
1. потрібна дууууже унікальна або заразна ідея;
2. ідея (10%) та грамотний маркетинг (90%).

Всім плювать на реалізацію і різні тонкощі, головне щоб костюмчик сидів (щоб була приваблива упаковка).

284

(3 відповідей, залишених у Python)

Дякую за увагу до теми!

P.Y. написав:

чи замінити на

    return '<pre><b>Значення:</b> ' + request.POST.decode('utf-8')['name'] + '</pre>'

- так, іще один доречний варіант (я його не в тому місці був приліпив, і гадав, чого ж воно не працювало xD).

Гадаю, проблему остаточно вирішено. Як завжди, потрібно лишень напрягтись, і прочитати доку..

285

(3 відповідей, залишених у Python)

Запрацювало.. Oo

...
return '<pre><b>Значення:</b> ' + request.POST['name'].encode('latin1').decode('utf8') + '</pre>'
...

upd:

Because WSGI 3333 (the Python3 WSGI standard) requires all incoming data to be latin1-encoded unicode and a framework has no way to guess the correct encoding.

Bottle assumes utf-8 in many places already, though. This should be cleaned up in a future release (it breaks backward compatibility, so it's not that easy)

286

(3 відповідей, залишених у Python)

Доброго вечора панове!

Вирішив трішки заюзати bottle, та зіткнувся з вічною проблемою кодування :)

Наприклад маємо такий код:

# -*- coding: UTF-8 -*-
from bottle import request, run, route


@route('/') 
def main():
    return '<form method="POST"><input type="text" name="name" value="Текст"/><input type="submit"/></form>'


@route('/', method='POST')
def main_post():
    return '<pre><b>Значення:</b> ' + request.POST['name'] + '</pre>'

run(port=80)

Рез-тат:
http://i63.сайт-злодій/big/2014/1107/45/a984b90fbba8c70c0c818290d1e8ad45.png

І контент-тайп ставив по-різному і декоде, а ніфіга.
При виконанні..

request.body.readlines()

.. маю на виході

name=%D0%A2%D0%B5%D0%BA%D1%81%D1%82

Тобто бачимо, що слово "Текст" кодується по UTF8, але чомусь нічого не допомагає..

Хто зтикався з подібною проблемою? Як його вирішити?

287

(2 відповідей, залишених у Python)

https://wiki.python.org/moin/GuiProgramming
Розділ "GUI Design Tools and IDEs".

288

(1 відповідей, залишених у Python)

Доброго вечора шановне панство!

Нещодавно почав цікавитись розробкою веб-додатків (в основному бекенд). Але річ не в цьому. В голові я собі прокрутив таку думку: дзвінок через веб-сайт, а коротше кажучи - веб-клієнт, на зразок X-lite и пр. SIP-клієнтів, але в браузері. Нагуглив лібу (pjsip).
Глобальне питання: я зможу подібне реалізувати за допомогою Python, віщевказаної бібліотеки (pjsip), та фронтенд-засобів (js)?

Ця ВМ використовувалася в моєму пакувальнику-крипторі, тому вона має деякі спецефічні властивості, продиктовані антиантивірусним ринком.

Цікава реалізація. Таким чином, вдається збити лише сигнатурний детект? З проактивним захистом, мабуть, по іншому потрібно діяти..