Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Можно ли передать String по ссылке 
:(
    Опции темы
3,14
Дата 23.8.2007, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



По умолчанию объекты типа String передаются по значению. Можно ли как то исхитрится и передать String по ссылке?
Пока есть только идея передавать массив стрингов, но это не очень удобно :( Так как в методе меняется всего две переменных...


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
ekr
Дата 23.8.2007, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


...и это пройдет...
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 6.5.2007
Где: Moscow, RU

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



Цитата(3 @ 14, 23.8.2007,  12:22 Найти цитируемый пост)
По умолчанию объекты типа String передаются по значению.

по ссылке они передаются, т.к. это объектный тип, а не примитивный

а что сделать-то дальше с ними надо?


--------------------
и это пройдет....

http://ekrs.blogspot.com
PM WWW   Вверх
y3u
Дата 23.8.2007, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



К тому же есть StringBuilder-ы и StringBuffer-ы... на крайний случай smile
Не хватает информации о решаемой задачи, чтобы что-то предложить...


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
3,14
Дата 23.8.2007, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(ekr @  23.8.2007,  13:00 Найти цитируемый пост)
по ссылке они передаются, т.к. это объектный тип, а не примитивный

Не всё так просто. Вот код
Код

public class Test
{
    public static void testString(String str) {
        str = "new value";
    }
    public static void main(String[] args) {
        String str = "old value";
        testString(str);
        System.out.println(str);
    }
}

На выходе получаем: old value. Те, по сути происходит передача по значению.
Цитата(y3u @  23.8.2007,  13:30 Найти цитируемый пост)
Не хватает информации о решаемой задачи, чтобы что-то предложить...

Задача такая. Функция должна распарсить передаваемую ей строку, и записать результат в две других строки.


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
Shaggie
Дата 23.8.2007, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

public class Test
{
    public static String testString(String str) {
        str = "new value";
        return str;
    }
    public static void main(String[] args) {
        String str = "old value";
        str=testString(str);
        System.out.println(str);
    }
}



--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
nornad
Дата 23.8.2007, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Shaggie, это не поможет:
Цитата(3 @ 14, 23.8.2007,  16:51 Найти цитируемый пост)
Функция должна распарсить передаваемую ей строку, и записать результат в две других строки. 

Приведённый пример проще поставленной задачи.

3,14, а кто мешает сделать свой объект, который будет содержать две строки? И его уже передавать функции. Она в этом случае без проблем изменить содержимое строк.
Ну или тот же массив передавать, но это скорее сишный стиль, чем жабовский.

Кстати, о передаче по ссылке и значению в java уже немало сказано на этом форуме. Поищи и почитай - полезно. Поймёшь, почему у тебя передалось "по значению".  smile 


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
goodday1941
Дата 23.8.2007, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(3 @ 14, 23.8.2007,  13:51 Найти цитируемый пост)
На выходе получаем: old value. Те, по сути происходит передача по значению.

таки так получаеться 

интерестно а что будет если написать так:

Код

public class Test
{
    public static void testString(String str) {
        str.replace(str, "new value");
    }
    public static void main(String[] args) {
        String str = "old value";
        testString(str);
        System.out.println(str);
    }

}


Добавлено через 10 минут и 57 секунд
в общем то результат тот же.. дак почему же не переопределился стринг?


--------------------
SCJP 6
PM MAIL ICQ Skype GTalk   Вверх
y3u
Дата 23.8.2007, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(goodday1941 @  23.8.2007,  15:30 Найти цитируемый пост)
интерестно а что будет если написать так:


ничего не будет smile 

http://java.sun.com/javase/6/docs/api/java/lang/String.html

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

http://skipy.developer.juga.ru/technics/st...s.html#mutation

но это так, лирика smile

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

Это сообщение отредактировал(а) y3u - 23.8.2007, 14:48


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
fixxer
Дата 23.8.2007, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ничего хорошего. String является immutable. str не изменится, а результат возвратится из метода replace.


--------------------
user posted image
PM MAIL ICQ   Вверх
3,14
Дата 23.8.2007, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(nornad @  23.8.2007,  14:28 Найти цитируемый пост)
3,14, а кто мешает сделать свой объект, который будет содержать две строки?

Цитата(nornad @  23.8.2007,  14:28 Найти цитируемый пост)
Ну или тот же массив передавать, но это скорее сишный стиль, чем жабовский.

потомучто тогда при каждом вызове ф-ии придётся писать 5 строк вместо 1, что очень не приятно

Цитата(nornad @  23.8.2007,  14:28 Найти цитируемый пост)
Кстати, о передаче по ссылке и значению в java уже немало сказано на этом форуме. Поищи и почитай - полезно.

Да я и так знаю, почему это так работает. Я не могу найти решение к-ое меня бы устраивало.





--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
y3u
Дата 23.8.2007, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(3 @ 14, 23.8.2007,  15:50 Найти цитируемый пост)
потомучто тогда при каждом вызове ф-ии придётся писать 5 строк вместо 1, что очень не приятно


ну, привыкай smile 

"здесь Вам не С" (с) smile


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
goodday1941
Дата 23.8.2007, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(fixxer @  23.8.2007,  14:47 Найти цитируемый пост)
Ничего хорошего. String является immutable. str не изменится, а результат возвратится из метода replace.

эта строка мне открыла глаза  smile 

а есть где то перечень immutable классов?


--------------------
SCJP 6
PM MAIL ICQ Skype GTalk   Вверх
3,14
Дата 23.8.2007, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(y3u @  23.8.2007,  14:53 Найти цитируемый пост)
ну, привыкай smile 

Не привык привыкать smile Привык находить более хорошие решения smile


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
y3u
Дата 23.8.2007, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



по приколу, с ходу не тестируя, т.ч. не пинайте smile Тут, по хорошему, Strategy pattern нужен вместо Factory smile

Код

public interface StringParserResult() {
    String[] getResults();
}

public final class MyStringParserResults() implements StringParserResults {
    private Collection<String> results = new ArrayList<String>();

    public MyStringParserResults() {}

    public MyStringParserResults(String[] results) {
          this.results.addAll(Arrays.asList(results));
    }

    public void addString(String result) {
        results.add(result);  
    }

    public String[] getResults() {
        return results.toArray(new String[results.size()]);
    }
}

public interface StringParser() {
   StringParserResult parse(String src);
}

public final class MyStringParser() {
    private StringParserResult results;

    public StringParserResult parse(String src) {
        return new StringParserResult(src.split("myRegExp"));
    }
}

public final class StringParserFactory() {
    private StringParserFactory(){}

    public static StringParser createStringParser() {
        return new MyStringParser();
    } 
}


использование в одну строчку

Код

    StringParserFactory.createStringParser().parse("asdasdasd");


Это сообщение отредактировал(а) y3u - 23.8.2007, 16:02


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
nornad
Дата 24.8.2007, 03:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(3 @ 14, 23.8.2007,  15:22 Найти цитируемый пост)
По умолчанию объекты типа String передаются по значению. Можно ли как то исхитрится и передать String по ссылке?


Цитата(3 @ 14, 23.8.2007,  17:50 Найти цитируемый пост)
Цитата(nornad @  23.8.2007,  14:28 Найти цитируемый пост)
Кстати, о передаче по ссылке и значению в java уже немало сказано на этом форуме. Поищи и почитай - полезно.

Да я и так знаю, почему это так работает. Я не могу найти решение к-ое меня бы устраивало.

Что-то не сходится...


y3u, что-то я не понял, к чему код... Или ты темой ошибся, или я нить рассуждений потерял...

Добавлено через 4 минуты и 22 секунды
Цитата(3 @ 14, 23.8.2007,  17:50 Найти цитируемый пост)
придётся писать 5 строк вместо 1

Мне почему-то кажется, что скорее 3 строки, но в данном случае это не так важно.
Передать "по ссылке" можно лишь, если требуемая переменная лежит внутри другого объекта (передаваемого). Или массива. Другого способа нет.
Хотя... Если через рефлекшн внаглую попробовать "проломить" безопасную ссылку...
Только вот лично я предпочту сделать обёртку. Потому как рефлекшн пользовать не лучшая идея. smile 


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
y3u
Дата 24.8.2007, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(nornad @  24.8.2007,  04:09 Найти цитируемый пост)
Только вот лично я предпочту сделать обёртку. Потому как рефлекшн пользовать не лучшая идея


вот как раз код к этому...


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
3,14
Дата 24.8.2007, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Жесть, меня на сановском форуме все дружно уверяют, что абсолютно все объекты передаются по значению, а не по ссылке. smile 


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
fixxer
Дата 24.8.2007, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(3 @ 14,24.8.2007,  10:16)
Жесть, меня на сановском форуме все дружно уверяют, что абсолютно все объекты передаются по значению, а не по ссылке. smile

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


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


...и это пройдет...
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 6.5.2007
Где: Moscow, RU

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



Цитата(3 @ 14, 24.8.2007,  10:16 Найти цитируемый пост)
Жесть, меня на сановском форуме все дружно уверяют, что абсолютно все объекты передаются по значению, а не по ссылке.

разница в контексте.

дело в том, что действительно, 
Цитата(fixxer @  24.8.2007,  10:38 Найти цитируемый пост)
абсолютно все объекты передаются по значению, а не по ссылке

это правда.

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

получается, что технически по значению, а концептуально по ссылке.

во как загнул )


--------------------
и это пройдет....

http://ekrs.blogspot.com
PM WWW   Вверх
3,14
Дата 24.8.2007, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Я как то првивык разделять объект и ссылку на объект. Всё таки это разные вещи.
Объект - это, как известно, экземпляр класса. А ссылка - это всего лишь ссылка smile


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
nornad
Дата 24.8.2007, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



3,14, ну вот, а говорил, что знаешь и понимаешь. smile
В java все объектные переменные - действительно представлены ссылками. Сами ссылки передаются в методы в безопасном виде, что позволяет получить и изменить данные в объекте по ссылке, но не позволяет изменить саму ссылку.

P.S. Блин, на моей памяти уже раз так четвёртый тему мусолим...


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
3,14
Дата 24.8.2007, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



nornad, это, знаешь ли, уже вопрос терминилогии. Считать ли пер-ую типа ссылка, передаваемую в метод, объектом. В Java различия между этимми понятиями не делается, но это только в Java.


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
nornad
Дата 24.8.2007, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



3,14, вот-вот. Ты уже сам ответил на свой вопрос. smile
Если пишешь на Java, надо придерживаться её идеологии. По идеологии Java всё есть объект (ну, за исключением встроенных типов, конечно). Понятие ссылки в Java вообще отсутствует. И не надо его из С/С++ тянуть - там полного аналога для этого не существует.
Нужно просто понять и принять идеологию, а не пытаться притянуть её к другой идеологии, которую ты уже знаешь.


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
3,14
Дата 24.8.2007, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



nornad,  я на Java пишу гораздо дольше, чем некогда писал на C++. Просто такая идеология куда как удобней когда нужно копатся, напрмер, с байт кодом.


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
AntonSaburov
Дата 24.8.2007, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

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



Чего-то тут много словов всяких smile

Да вернуть массив строк и всех делов

Вот для примера - разбиавем строку на массив строк - разделителем является символ двоеточия ":"
Код

public String[] parseMyOldValue(String s)
{
   String[] p = s.split(":");
   return p;
}


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


Эксперт
***


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

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



Цитата(AntonSaburov @  24.8.2007,  18:34 Найти цитируемый пост)
Чего-то тут много словов всяких 

Ниасилил? smile
А пример, кстати, хорош - коротко и ясно. Если хочется большего - меняем String на Object и радуемся резко возросшим возможностям.
Жаль только, что камраду такой вариант не нравится - не лаконичен, видите ли... Ну, кому что, как говорится.


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
math64
Дата 26.8.2007, 01:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Если не нравится возвращать массив, то проще этого не придумаешь:
Код

interface StringSetter {
   void set(String value);
}

public class Parser {
   private String string1;
   private String string2;
   StringSetter setter1 = new StringSetter() {
      void set(String value) { string1 = value; }
   }
   StringSetter setter2 = new StringSetter() {
      void set(String value) { string2 = value; }
   }

   public static void main(String[] args) {
      Parser parser = new Parser();
      parse(args[0], parser.setter1, parser.setter2);
   }

   static void parse(String s, StringSetter setter1, StringSetter setter2) {
      int index = s.indexOf(',');
      if (index < 0) {
        setter1.set(s);
        setter2.set(null);
      } else {
        setter1.set(s.substring(0,index));
        setter2.set(s.substring(index));
      }
   }
};


PM   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

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


 




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


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

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