Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чё-то не пойму, как прочесть целое число из файла? 
:(
    Опции темы
Dims
Дата 30.11.2007, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 1
Всего: 11



А operator>> считывает целые числа в текстовом виде или как?

вот такой у меня код:
Код

ifstream file;
long v;

file.open( filename );
file >> v;


вот такой у меня файл (текстовый):

1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,2,1,3,36546396
и так далее.

Смотрю в отладчике -- в v попадает какой-то бред (большое отрицательное число). Причём, поток переходит в состояние ошибки.

Почему? Наверное, он в двоичном формате считывает? А как сделать в текстовом?

Почему 

cout << v;

выводит в текстовом?

PM MAIL   Вверх
Dims
Дата 30.11.2007, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 1
Всего: 11



Ха!

Решил переопределить operator>> для long...

Не тут-то было! Не даёт, дура. Говорит ambigous...

Чё делать-то???
PM MAIL   Вверх
Alek86
Дата 30.11.2007, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



ifstream сам не может догадаться, что у тебя делимитер ","
можно пробел использовать или энтер


--------------------
user posted image    user posted image
PM MAIL   Вверх
Dims
Дата 30.11.2007, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 1
Всего: 11



М-дя, кажется, это заговор. Зря я с этими istream-ами связался. Надо было писать по-старинке.

Написал функцию long readlong( istream &is ), которая читает посимвольно и составляет число.

Так оказалось, что при чтении пропускаются символы перевода строки!

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

Спрашивается, где логика?

Почему оператор 

Код

long v = 12;
cout << v; 


выводит переменную в текстовом виде, а оператор

Код

long v;
cin << v; 


считывает её в двоичном?

Ну ладно, любим очень двоичные данные. Но нафига тогда съедать символы перевода строки? Ведь в двоичном виде эти символы могут быть нужны! 

То есть, получается, istream -- это особый способ читать двоичные файлы с проглатыванием некоторых байтов!?

Или я чего-то по-крупному не понимаю? smile

Добавлено через 2 минуты и 1 секунду
Цитата(Alek86 @  30.11.2007,  22:43 Найти цитируемый пост)
ifstream сам не может догадаться, что у тебя делимитер ","

Сам не может, а с моей помощью -- может? Как ему подсказать? Как ему сказать, чтобы он делал то, что надо, а не то, что ему в голову взбредёт? Формат файла у меня задан.

Добавлено через 4 минуты и 33 секунды
А, то есть, он, всё-таки, читает в текстовом виде, но спотыкается на запятой?

А что мне делать, чтоб (1) не спотыкался и (2) видел концы строк?
PM MAIL   Вверх
archimed7592
Дата 30.11.2007, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(Dims @  30.11.2007,  22:43 Найти цитируемый пост)
считывает её в двоичном?

Если изменить направление стрелок, то считывать будет в текстовом виде.

Цитата(Dims @  30.11.2007,  22:43 Найти цитируемый пост)
Или я чего-то по-крупному не понимаю? smile 

По всей видимости, что да, только я из 3-х твоих постов так и не понял ни того, что ты хочешь от потоков получить, ни в чём суть твоей проблемы.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Alek86
Дата 30.11.2007, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



getline, кажись, делимитеры принимает


--------------------
user posted image    user posted image
PM MAIL   Вверх
Dims
Дата 30.11.2007, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 1
Всего: 11



Цитата(archimed7592 @  30.11.2007,  22:55 Найти цитируемый пост)
По всей видимости, что да, только я из 3-х твоих постов так и не понял ни того, что ты хочешь от потоков получить, ни в чём суть твоей проблемы. 

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

А как это стрелочки в другую сторону? Я так понимаю, что если влево, то это вывод, а если вправо, то ввод. Не так?

PM MAIL   Вверх
Alek86
Дата 1.12.2007, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



Код

long v;
cin << v;


архимед имел в виду, что ты тут неправильно стрелки поставил


--------------------
user posted image    user posted image
PM MAIL   Вверх
Dims
Дата 1.12.2007, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 1
Всего: 11



А, да, я перепутал.

Я, собственно, уже прочёл построчно файл, с разбором каждой строки. Но это как-то некрасиво. 

Где же поточные прелести?
PM MAIL   Вверх
maxim1000
Дата 1.12.2007, 01:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 17
Всего: 110



в принципе, можно всё прочитать в строку, заменить все запятые на пробелы, потом из неё сделать std::istringstream и из него читать обычным operator>>


--------------------
qqq
PM WWW   Вверх
Dims
Дата 1.12.2007, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 1
Всего: 11



Всё равно как-то это некрасиво. Я же могу с лёгкостью сделать вывод через запятую. Почему же обратная операция порождает такие глюки?
PM MAIL   Вверх
bsa
Дата 1.12.2007, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



test.cpp:
Код
#include <iostream>
#include <fstream>
int main()
{
        std::ifstream file("test.txt");
        long v;
        file >> v;
        std::cout << v << std::endl;
        return 0;
}
test.txt:
Код
1234,1002
Результат работы:
Код
$ ./test 
1234
Компилировал с помощью GCC 4.1.2
PM   Вверх
Alek86
Дата 1.12.2007, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



на VS 2005 ни дебаг ни релиз такого результата не дают


--------------------
user posted image    user posted image
PM MAIL   Вверх
archimed7592
Дата 1.12.2007, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Dims, интересно получается - при выводе ты указываешь, что нужно вставлять разделитель в виде запятой, и при вводе хочешь, чтобы поток сам догадался? smile

Попробуй указать ему, что между числами есть разделитель:
Код

#include <istream>
#include <ostream>
#include <iostream>

int main()
{
    char c;
    int i1, i2;
    std::cin >> i1 >> c >> i2;
    std::cout << i1 << c << i2 << std::endl;
}


Что же касается конвертации \r\n в \n - это особенность текстовых потоков. Если хочешь работать с потоком в бинарном режиме, то используй соответствующие методы, а не операторы <<, >>.

Ах, ну да, то что поток сам догадывается, что нужно пропускать пробельные символы - это только лишь по умолчанию:
Код

#include <iomanip>
// ...
std::cin >> std::noskipws;


Добавлено через 8 минут и 43 секунды
Цитата(Alek86 @  1.12.2007,  12:34 Найти цитируемый пост)
на VS 2005 ни дебаг ни релиз такого результата не дают 

Выкини свою студию - она у тебя пиратская smile.
Hint: файлик test.txt где лежит?

Это сообщение отредактировал(а) archimed7592 - 1.12.2007, 12:50


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Alek86
Дата 1.12.2007, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



Цитата(archimed7592 @  1.12.2007,  12:48 Найти цитируемый пост)
Выкини свою студию - она у тебя пиратская 

каюсь, но выкидывать не буду
Цитата(archimed7592 @  1.12.2007,  12:48 Найти цитируемый пост)
Hint: файлик test.txt где лежит?

именно НЕ там, где должен лежать...
а говорил, экстрасенсов нету...




--------------------
user posted image    user posted image
PM MAIL   Вверх
archimed7592
Дата 1.12.2007, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(Alek86 @  1.12.2007,  21:34 Найти цитируемый пост)
именно НЕ там, где должен лежать...
Кстати, вполне возможно, что это и есть разгадка аномалий с потоками, наблюдаемых топикстартером smile.


Цитата(Alek86 @  1.12.2007,  21:34 Найти цитируемый пост)
а говорил, экстрасенсов нету...

Стараюсь smile.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Alek86
Дата 1.12.2007, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



Dims, проверь is_open'ом


--------------------
user posted image    user posted image
PM MAIL   Вверх
Dims
Дата 2.12.2007, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 1
Всего: 11



Цитата(archimed7592 @  1.12.2007,  12:48 Найти цитируемый пост)
Dims, интересно получается - при выводе ты указываешь, что нужно вставлять разделитель в виде запятой, и при вводе хочешь, чтобы поток сам догадался? 

Естественно, нет smile
Но должен же быть способ ему сказать, что я хочу?
Я думал, что операция cin >> v должна выбирать из потока целое число (если long v) и останавливаться тогда, когда символ не является цифрой (точнее, когда его невозможно уже считать частью числа). Судя по всему, у других так и работает.

PM MAIL   Вверх
archimed7592
Дата 2.12.2007, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(Dims @  2.12.2007,  16:21 Найти цитируемый пост)
Судя по всему, у других так и работает.

Так и есть. Можешь сам попробовать сделать так:
Код

#include <istream>
#include <ostream>
#include <iostream>
#include <fstream>
int main()
{
    ifstream fin("test.txt"); // в файлике должно быть что-то вроде "123,456"(без кавычек :) )
    if (!fin)
    {
        std::cerr << "oops";
        return -1;
    }
    char c;
    int i1, i2;
    fin >> i1 >> c >> i2;
    std::cout << i1 << c << i2 << std::endl;
}



--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Dims
Дата 4.12.2007, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 1
Всего: 11



У меня получилось вот что

Код

-858993460╠-858993460
Для продолжения нажмите любую клавишу . . .


Видимо, после первой попытки прочитать число, поток переходит в состояние ошибки, при этом ни первое, ни последующие извлечения не производятся (в переменных остаётся мусор).

Это что же, Вижуал Студио так работает неправильно? А где-то написано, что она должна работать иначе?

PM MAIL   Вверх
archimed7592
Дата 4.12.2007, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Dims, ага, написано... В том самом талмуде, который я тебе не так давно отправлял smile.


Цитата(Dims @  4.12.2007,  11:36 Найти цитируемый пост)
У меня получилось вот что

У меня получается то же самое, в случае, если удалить файл test.txt(или убрать его куда-нибудь). Проверено на студии и мной и Алеком 86-го года рождения. Видимо, что-то ты делаешь не так...


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Random13
Дата 4.12.2007, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 21.11.2007

Репутация: нет
Всего: нет



Не знаю точно о разделителе, но настройки стрима по умолчанию можно менять, например
ostream << setprecision(2) << setfill(*) << setw(6) << 4.17;
выведет
***4.2
нужно поискать остальные в хэлпе

Это сообщение отредактировал(а) Random13 - 4.12.2007, 19:02
PM MAIL   Вверх
bsa
Дата 4.12.2007, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Random13, какое отношение это имеет к теме топика?  smile 

Это сообщение отредактировал(а) bsa - 4.12.2007, 18:18
PM   Вверх
Random13
Дата 4.12.2007, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 21.11.2007

Репутация: нет
Всего: нет



Цитата(bsa @ 4.12.2007,  18:17)
Random13, какое отношение это имеет к теме топика?  smile

Человек вместо пробелов хочет запятую разделителем сделать по умолчанию - ну это одна из проблем - как я понял.

Это сообщение отредактировал(а) Random13 - 4.12.2007, 18:22
PM MAIL   Вверх
Dims
Дата 4.12.2007, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 1
Всего: 11



Цитата(archimed7592 @  4.12.2007,  17:41 Найти цитируемый пост)
У меня получается то же самое, в случае, если удалить файл test.txt(или убрать его куда-нибудь).

Это отдельный вопрос: почему в этом случае не срабатывает 

Код

if (!fin)

?

Чтобы не гадать, где должен лежать файл, я написал так

Код

    ofstream fout("testik.txt");
    if (!fout)
    {
        std::cerr << "oops";
        return -1;
    }
    fout << 123 << "," << 456;
    fout.close();

    ifstream fin("testik.txt"); // в файлике должно быть что-то вроде "123,456"(без кавычек :) )
    if (!fin)
    {
        std::cerr << "oops";
        return -1;
    }
    char c;
    int i1, i2;
    fin >> i1 >> c >> i2;
    std::cout << i1 << c << i2 << std::endl;
    system("pause");


И получил тот же результат (мусор).

Добавлено через 41 секунду
P.S. При этом текстовый файл образовался, где я и предполагал.
PM MAIL   Вверх
archimed7592
Дата 4.12.2007, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Мда... MSVC-?.?


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Dims
Дата 4.12.2007, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 1
Всего: 11



Microsoft Visual Studio 2005
Version 8.0.50727.42  (RTM.050727-4200)
Microsoft .NET Framework
Version 2.0.50727

А почему у тебя oops не выводится? Ведь !fin должно быть истинно, когда с потоком что-то не так. Следовательно, если файл не существует, то исполнение должно идти в эту ветку. Нет?

Добавлено через 32 секунды
Причём кажется, мне что я когда рылся в документации, где-то видел типа, что так и должно быть.
PM MAIL   Вверх
archimed7592
Дата 4.12.2007, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(Dims @  4.12.2007,  19:59 Найти цитируемый пост)
Ведь !fin должно быть истинно, когда с потоком что-то не так.

Дык у тебя же с ним всё в порядке...


Цитата(Dims @  4.12.2007,  19:59 Найти цитируемый пост)
Microsoft Visual Studio 2005
Version 8.0.50727.42  (RTM.050727-4200)
Microsoft .NET Framework
Version 2.0.50727

Ты точно что-то не так делаешь... Я тоже на восьмой проверял. Сомневаюсь, что это из-за сервис-пака. Завтра ещё на работе проверю - там у меня без сервис-пака.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Dims
Дата 5.12.2007, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 1
Всего: 11



А ты предположи, что может быть не так? В последней программе файла не может не быть, ведь он создаётся из самой программы. 

Я так понял, такой глюк не только у меня. Может быть, в каких-то настройках компиллятора можно задавать разделитель, хоть это и странно?
PM MAIL   Вверх
baldina
Дата 6.12.2007, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



попробуй:

Код

  ifstream file;
  long v;

  file.open(filename);
  while (file >> v)
  {
    cout << v << endl;
    char c;
    file >> c;
  }

  file.close ();


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

Добавлено через 3 минуты и 47 секунд
> И получил тот же результат (мусор).

Вообщето код этот не только выглядит работающим, но и работает  smile 
VS 2003
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0762 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.