Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование (VB,C#,ASP,.NET): новости, советы, примеры



Выпуск # 204


http://www.kbyte.ru/

 

Новый выпуск!

Здравствуйте дамы и господа!
Очередной выпуск рассылки Kbyte.Ru!

 

Содержание выпуска

Система ЭКСПЕРТ

    Вопрос #000554: С#

    Вопрос #000553: C#

    Вопрос #000546: Как открыть и прочитать файл на Си++?

    Вопрос #000539: работа с dll

    Вопрос #000536: Работа с файлами...

Последнее на форумах

    неспослушная страница

    ошибка

    Регулярные выражения для "квадротегов"...

    Вернемся к вопросу шифрования...

    где оно хранится?

Последние статьи

    Взаимодействие с другими сайтами через HTTP (HttpWebRequest и HttpWebResponse)

    Работа с SQL – Запросы

    Использование XML.Serialization

    Выбор языка программирования для научных работ (2-я редакция)

    Работаем с MIME

Интересные коды и решения

Юмор на Kbyte.Ru

 

Система ЭКСПЕРТ

 

Система «Эксперт» - уникальная система, которая поможет решить, если не все, то многие Ваши проблемы с программированием и разработкой! Если у Вас есть какой-либо вопрос по программированию или разработке, то Вы всегда можете задать его нашим Экспертам! При этом каких-либо особых действий от Вас не потребуется! Просто отправьте Ваш вопрос на адрес mailto:expert@kbyte.ru, в теме письма укажите тему вопроса, в тексте – сам вопрос, и все! Эксперты дадут Вам ответ в течение 12-24 часов, на тот адрес, с которого Вы отправите вопрос. Все проще простого! Никакой регистрации и заполнение бесконечных форм, никаких наездов, оскорблений и насмешек со стороны гуру, просто спросите и получите ответ ;-)


Вопрос #000554: С#

Автор вопроса: Антон Мозговой // 17.10.2007 / 18:12

Добрый день!
Как можно создать нестандартное окно (круглое, треугольное). Например взять его с рисунка.
С ув.,
Антон Мозговой

Отвечает: EROS // 17.10.2007 / 23:00

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
      //
      GraphicsPath _path = new GraphicsPath();
      _path.AddEllipse(0,0,400,300);
      this.Region = new Region(_path);
    }
  }

 

Вопрос #000553: C#

Автор вопроса: Антон Мозговой // 17.10.2007 / 18:10

Добрый день!
У меня такой вопрос. Как можно отображить графические примитивы (эллипсы, прямоугольники) на рабочем столе.
С ув.,
Мозговой Антон

Отвечает: EROS // 17.10.2007 / 22:52


public partial class Form1 : Form
{
[DllImport("User32.dll")]
static extern IntPtr GetDC(IntPtr hwnd);

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
using (Graphics _graph = Graphics.FromHdc(GetDC(IntPtr.Zero)))
{
_graph.FillEllipse(Brushes.Red, 0,0,400,300);
}
}
}

 

Вопрос #000546: Как открыть и прочитать файл на Си++?

Автор вопроса: 5acred Phoenix // 15.10.2007 / 13:03

Доброе время суток, уважаемые эксперты.

У меня такой банальный вопрос по С++ :-)
Как открыть файл, что-нибудь туда записать и закрыть его? API?
И ещё есть вопрос по поводу MFC и ATL. Что это за библиотеки? Когда
какая используется?

Заранее спасибо.

Отвечает: Алексей Немиро // 15.10.2007 / 15:12

Здравствуйте!

ATL - Active Template Library
- это библиотека для оздания COM-компонентов. С ее помощью вы можете делать ActiveX-компоненты разных видов - полные (Full), облегченные (Light) и др. Полные элементы предназначены для любого контейнера, а облегченные будут работать не во всяком контейнере. Но это не значит, что облегченные хуже - например у них будет меньший вес (в килобайтах), и это несомненный плюс. Кроме того, можно делать еще элементы ActiveX, которые являются составными (Composite), то есть включают в себя другие готовые элементы.
Еще с помощью библиотеки ATL можно делать COM-компоненты без пользовательского интерфейса. Они могут предоставлять различные услуги вашим программам - что-то там считать, пересылать и т. п. Также к компонентам без пользовательского интерфейса относятся компоненты для MTS (Microsoft Transaction Server). Их мы тоже обязательно рассмотрим.
Вобще-то компоненты ActiveX можно делать и на основе MFC. Но тогда для их работы на клиентском компьютере необходимо присутствие библиотек MFC, а они по объему достаточно большие. Так что различные COM-компоненты (и в частности элементы ActiveX) предпочтительно делать на основе ATL, а не на основе MFC. Хотя это и несколько сложнее.


MFC - Microsoft Foundation Classes
Пакет Microsoft Foundation Classes (MFC) даёт возможность разрабатывать GUI-приложения для Microsoft Windows на языке C++ с использованием богатого набора библиотечных классов. Большая часть MFC представляет собой относительно тонкий объектно-ориентированный слой над Windows API. Это решение, с одной стороны, повышает производительность, но, с другой стороны, наследует все недостатки дизайна Windows API и препятствует переносу программ на другие платформы.
Первая версия MFC была выпущена вместе с седьмой версией 16-разрядного компилятора языка C/C++ компании Microsoft. Для тех, кто занимался разработкой приложений с использованием API функций, пакет MFC обещал весьма значительное повышение производительности процесса программирования. С момента выпуска первой версии пакет MFC претерпел многократные изменения.
* В версии 2 была введена архитектура документ-представление.
* В версии 2.5 была реализована поддержка технологий ODBC и drag-and-drop.
* В версии 3 появилась возможность реализации многозадачности и поддержка Unicode.
* В последующих версиях была введена поддержка сокетов, Internet-классов, технологий OLE-автоматизации и синхронизации потоков.
Сейчас Microsoft рассматривает MFC как устаревшую технологию, отдавая предпочтение Windows Forms, входящим в состав .NET.



001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
#include
#include

void main( void )
{
FILE *file;
char* file_name = "file.txt";
char load_string[50] = "none";

file = fopen( file_name, "w" );

fputs( "string", file );

fclose( file );

file = fopen( file_name, "r" );
if( file != 0 )
{
fgets( load_string, 50 , file );
cout << "load_string = " << load_string << endl;
}
else
{
cout << "File not found !!!" << endl;
}
fclose(file);
}


MFC
001:
002:
003:
004:
005:
006:
007:
008:
char* pszFileName = "c:\\myfile.txt";
CFile myFile;
CFileException fileException;

if ( !myFile.Open( pszFileName, CFile::modeCreate | CFile::modeReadWrite, &fileException ) )
{
  TRACE( "Can't open file %s, error = %u\n", pszFileName, fileException.m_cause );
}

001:
002:
003:
004:
005:
006:
007:
char   szBuffer[256];
uint   nActual = 0;
CFile myFile;

myFile.Write( szBuffer, sizeof( szBuffer ) );
myFile.Seek( 0, CFile::begin );
nActual = myFile.Read( szBuffer, sizeof( szBuffer ) );


001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
CFile theFile;
char* szFileName = "c:\\myfile.txt";
bool bOpenOK;

CFileStatus status;
if( CFile::GetStatus( szFileName, status ) )
{
  // Открываем файл
  bOpenOK = theFile.Open( szFileName, CFile::modeWrite );
}
else
{
  // Создаём файл и открываем его
  bOpenOK = theFile.Open( szFileName, CFile::modeCreate | CFile::modeWrite );
}


--
С наилучшими пожеланиями,
Немиро Алексей http://aleksey.nemiro.ru/

 

Вопрос #000539: работа с dll

Автор вопроса: LIS // 11.10.2007 / 07:38

Господа эксперты, помогите!!!
есть проблема, в моей маленькой программе я подключил компонент "Microsoft Calendar Contorl 11.0", на моём компьютере он есть, т.е.компонет и он работает, но вот не задача на других компах компелированная моя программа не запускает этот компонент, ругается что его нет, я подумал а как можно внести его в DLL и сделеть так чтобы он (коспонент) всегда был в с программой. что самое странное этот компонет, его файлы имеются на этом компьютере, перезагразка не помогает.
ПЛИЗ, помогите решить проблему!

--------------------------------------
Категория: --- Visual Basic 5.0/6.0

Отвечает: Алексей Немиро // 11.10.2007 / 08:01

Здравствуйте, LIS.

Этот компонент необходимо зарегистрировать в системе. Делается это так:

Пуск => Выполнить => regocx.exe полный путь к файлу

, где:
полный путь к файлу – полный физический путь к файлу компонента, который нужно зарегистрировать в системе.

Тоже самое и с DLL, только программкой regsvr32.exe.

Для отмены регистрации используйте атрибут /u:

regsvr32.exe /u C:\Windows\System32\myDll.dll

Еще можно поковыряться в реестре, но это только для личного пользования:

Пуск => Выполнить => regedit
Создайте разделы:
HKEY_CLASSES_ROOT\dllfile\Shell\Registration\command и присвойте строковому параметру по умолчанию значение regsvr32.exe "%1", а также создайте еще один раздел:
HKEY_CLASSES_ROOT\dllfile\Shell\UnRegister\command со значением regsvr32.exe /u "%1"

И тогда регистрировать DLL-ки можно будет кликом правой кнопкой мышки по файлу.

Также, можно создать «инсталяшку» для Вашей программки, и указать инсталлятору все компоненты, которые нужно зарегистрировать в системе.

Если все выше описанное не поможет, создайте соответствующую тему на
нашем форуме, постараемся помочь :)

--
С наилучшими пожеланиями,
Немиро Алексей http://aleksey.nemiro.ru/

 

Вопрос #000536: Работа с файлами...

Автор вопроса: Сергей // 10.10.2007 / 11:41

Здравствуйте эксперты! Мне нужно сохранить в одном файле (*.ekz) и текст и картинку (*.bmp). Язык Visual Basic 6.0. Помогите пожалуйта...

--------------------------------------
Категория: --- Visual Basic 5.0/6.0

Отвечает: Алексей Немиро // 10.10.2007 / 12:40

Здравствуйте, Сергей!

Для реализации этого Вам необходимо открыть текстовой файл и файл картинки по очереди в бинарном режиме, и затем записать их в Ваш файл. Также необходимо придумать какие-нибудь метки, по которым Вы сможете извлечь нужные файлы из файла *.ekz.

Записывать примерно так:
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
Private Sub Form_Load()
 Dim sTextFilePath As String
 Dim sBinFilePath As String
 sTextFilePath = "C:\111.txt" 'путь к текстовику
 sBinFilePath = "C:\Windows\notepad.exe" 'путь к бинарнику
 
 Open sTextFilePath For Binary As #1
 Dim bText() As Byte
 ReDim bText(FileLen(sTextFilePath))
 Get #1, 1, bText
 Close #1

 Open sBinFilePath For Binary As #1
 Dim bBin() As Byte
 ReDim bBin(FileLen(sBinFilePath))
 Get #1, , bBin
 Close #1

 Dim sMetka As String
 sMetka = "--разделитель файлов--"
 Open "C:\000.dat" For Binary As #1
 Put #1, , bText
 Put #1, , sMetka
 Put #1, , bBin
 Close #1
End Sub


Считывать файл также, до метки sMetka.

Это довольно грубовата реализация, можно сделать гораздо лучше, и записывать в конечный файл даже имена файлов, их размер, и еще что-нибудь :) Но для примера и данный вариант сгодится.
И лучше сделать универсальную функцию для «склеивания» файлов, передавать ей, например, массив путей к файлам и этот массив прогонять циклом, открывать каждый файл и записывать в конечный, так будет гораздо правильней.

--
С наилучшими пожеланиями,
Немиро Алексей http://aleksey.nemiro.ru/

 


Чтобы задать Ваш вопрос, отправьте его на адрес expert@kbyte.ru

Раздел Эксперт на сайте Kbyte.Ru

Наверх

 

 

Последнее на форумах

неспослушная страница | Автор: Neco
Добавлено: 17.10.2007 / 13:17 | ответов: 3 | просмотров: 56

на странице есть три грида, рядом с каждым detailview. вместе они активно перезагружают страницу (т.е. при смене выбранного элемента в гриде перезагружается вся страница целиком). И в плане производительсноти меня это не очень напрягает, поскольку разработка корпоративная - внутри локальной сети - но вот в плане удобства...
если к примеру, пользователь прокрутил страницу к нижнему гриду (если в первых двухгридах много значений) и нажал там Add New, то страница перезагружается и пользователь видит верхний грид, хотя он ему на фиг не нужен - работает-то он с третьим.
я так понимаю, что решается проблема с помощью javascript, но во-первых не знаю что за скрипт, а во-вторых хочется как-то минимизировать переписывание кода от страницы к странице.
кто как выходит из положения?

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: Алексей
Добавлено:17.10.2007 / 14:13
кто как выходит из положения?

наверное, никто никак не выходит :)
Раз ты пришел к кривой реализации, значит так криво все продумал :)
Можешь разбить страницу на куски, запихать все гриды в какую-нибудь Panel, или PlaceHolder, и показывать при необходимости только один, либо вообще в отдельном окне, при желании даже можно фреймы заюзать, но это уже будет извращеньем :) Еще можно AJAX-ом по шаманить, все зависит от целей и потребностей.

я так понимаю, что решается проблема с помощью javascript, но во-первых не знаю что за скрипт,

если тебе нужен скрипт прокрутки скрола, то вот он:
001:
002:
003:
004:
body.scrollTop = 65535; // 65535 - это куда ты его хочешь подвинуть, в данном случае в самый низ

_______________________
Colorized by: Eros.CodeSyntaxColor Engine


а во-вторых хочется как-то минимизировать переписывание кода от страницы к странице.

если у тебя действительно кривая реализация, то выход только один - переписать все с нуля, и хорошенько все продумать, прежде чем делать это, с учетом будущих потребностей. Хотя, можно и продолжать е**ться с тем что есть, но рано или поздно все равно где-нибудь застрянешь :)

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: Neco
Добавлено:17.10.2007 / 14:46
ага
ну тогда придётся на разных страницах всё это размещать
хотел просто сгруппировать таблицы, к примеру, относящиеся к местоположению, на одной странице
но видимо придётся группировать их в менюшке :)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 3 | Автор: EROS
Добавлено:17.10.2007 / 23:23
ну тогда придётся на разных страницах всё это размещать

Совсем не обязательно.. Расидай свои гриды по MultiView .. и показывай только тот View, который необходим в данный момент

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


ошибка | Автор: Neco
Добавлено: 17.10.2007 / 12:09 | ответов: 3 | просмотров: 40

после постинга сообщения, выходит страница с предложением "вернутся к сообщению" или типа того
а между тем слово "вернутся" отвечает на вопрос "что сделать", следовательно пишется как "вернуться"

может и мелочь, но раздражает глаз :)

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: Neco
Добавлено:17.10.2007 / 12:10
тест

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: Neco
Добавлено:17.10.2007 / 12:11
а, во - "Вернутся в тему" там написано

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 3 | Автор: Алексей
Добавлено:17.10.2007 / 12:18
замазал :)

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Регулярные выражения для "квадротегов"... | Автор: SocrAT
Добавлено: 17.10.2007 / 11:44 | ответов: 9 | просмотров: 121

Привет, знатокам!!!
Возникла проблема:

В web-приложении есть код, который получает от пользователя текст
(например, пользователь публикует сообщение на форуме).
Затем код проводит стандартное кодирование "опасных" символов в
html-последовательность, потом, применяя регулярное выражение ДОЛЖЕН
БЫ по идее провести замену. Не получается!!!!

Посмотрите, плиз. Подскажите.

001:
002:
003:
004:
005:
006:
007:
008:
009:
string inputedEncodedText;
inputedEncodedText = HttpUtility.HtmlEncode(tbArticleText.Text);
Regex regEx = new
Regex(@"\[(?<tag>[^\]]+)\](?<text>.+)\[/(?<endtag>[^\]]+)\]");
string changedText;
changedText = regEx.Replace(inputedEncodedText, "<$1>$2</$3>");

_______________________
Colorized by: Eros.CodeSyntaxColor Engine



Вводимый текст:
(i)Привет(/i), (b)Могучий(/b) (c)народ(/c)!


Соответственно я здесь квадратные скобки написал круглыми.


То, что получается в changedText:
&lt;i&gt;Привет(/i), (b)Могучий(/b) (c)народ&lt;/c&gt;!


Мне кажется, что здесь как-то не то что-то.

Буду рад любой помощи.
Спасибо заранее.

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: SocrAT
Добавлено:17.10.2007 / 12:00
Прошу прощения.
В моем посте выше:

То, что получается в changedText:
<i>Привет(/i), (b)Могучий(/b) (c)народ</c>!


_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: Neco
Добавлено:17.10.2007 / 13:36
по-моему квантификаторы стоит сделать "нежадными"

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 3 | Автор: SocrAT
Добавлено:17.10.2007 / 13:44
Мммммм....

Как сказал? :(

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 4 | Автор: Алексей
Добавлено:17.10.2007 / 13:54
001:
002:
003:
004:
005:
Regex regEx = new
Regex(@"\[(?<tag>[^\]]+)\](?<text>.+)\[/(\k<tag>[^\]]+)\]");
string changedText = "Привет, Могучий
001:
002:
003:
004:
005:
006:
народ

Colorized by: Eros.CodeSyntaxColor Engine
!";
do
{
  changedText = regEx.Replace(changedText, "<$1>$2</$3>");
} while (regEx.Match(changedText).Success);      
Console.WriteLine(changedText);

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 5 | Автор: Алексей
Добавлено:17.10.2007 / 13:55
Ой! :)

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
Regex regEx = new
Regex(@"\[(?<tag>[^\]]+)\](?<text>.+)\[/(\k<tag>[^\]]+)\]");
string changedText = "(i)Привет(/i), (b)могучий(/b) (c)народ(/c)!";
do
{
 changedText = regEx.Replace(changedText, "<$1>$2</$3>");
} while (regEx.Match(changedText).Success);   
Console.WriteLine(changedText);

Colorized by: Eros.CodeSyntaxColor Engine

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 6 | Автор: SocrAT
Добавлено:17.10.2007 / 14:18
НЕ работает.... :(

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 7 | Автор: Алексей
Добавлено:17.10.2007 / 14:20
Что именно не работает? Я проверял в Win-приложении, с тем текстом, что в примере, все работае как надо.

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 8 | Автор: SocrAT
Добавлено:17.10.2007 / 14:27
Я скопировал твой текст.
Не работает.
после этого кода значение
changedText = (i)Привет(/i), (b)могучий(/b) (c)народ(/c)!

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 9 | Автор: Алексей
Добавлено:17.10.2007 / 14:34
А, точно, опечатка :)
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
Regex regEx = new
Regex(@"\[(?<tag>[^\]]+)\](?<text>.+)\[/(\k<tag>)\]");
string changedText = "|i|Привет|/i|, |b|Могучий|/b| |c|народ|/c|!";
do
{
 changedText = regEx.Replace(changedText, "<$1>$3</$1>");
} while (regEx.Match(changedText).Success);
Console.WriteLine(changedText);

_______________________
Colorized by: Eros.CodeSyntaxColor Engine


_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Вернемся к вопросу шифрования... | Автор: Kolya007
Добавлено: 17.10.2007 / 05:53 | ответов: 15 | просмотров: 190

Вот проблематичный кусок кода...
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
For l=0 To login_1_len - 1
login_l(l) = Left(login_1, login_1_len - l)
login_l_len(l) = Len(login_l(l))
login_1_l(l) = StrReverse(login_l(l)) //а вот и сама проблема
login_r(l) = Left(login_1_l(l), login_l_len(l) - (login_l_len(l) - 1))
login_j_l = Join(login_r)
login_2 = Replace(login_j_l, " ", "")
Next 'l

Colorized by: Eros.CodeSyntaxColor Engine

Почему StrReverse выполняется тут только 1 раз, когда l=0?.. Мне кажется, что где-то ошибся, но где непойму...
А про Next 'l говорю сразу, так и должно быть, потому как Next l и Next неработают(выдают ошибку)...

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: Алексей
Добавлено:17.10.2007 / 06:12
Вот проблематичный кусок кода...

Этот кусок кода мало о чем говорит :)
Хотя бы покажи, чему равны переменные, с которыми ты работает в этом коде, и от куда они берутся :)
Почему StrReverse выполняется тут только 1 раз, когда l=0?..

не вижу связи между "1 раз" и "l=0". Если l = 0, то, видимо, функция
StrReverse должна "перевернуть" строку в массиве login_l(0), и так далее до login_1_len - 1.

Вообще, по-моему, у тебя код бессмысленный:
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
For l=0 To login_1_len - 1
 login_l(l) = Left(login_1, login_1_len - l) 'что-то выбрали в массив
 login_l_len(l) = Len(login_l(l)) 'получили размер, хотя по-мому это пустая трата памяти, вряд ли Len может сильно повлиять на производительность :)
 login_1_l(l) = StrReverse(login_l(l)) 'перевернули строку, и записали в другую переменную
 login_r(l) = Left(login_1_l(l), login_l_len(l) - (login_l_len(l) - 1)) 'взяли кусок того, что перевернули, еще в одну переменную :)
 login_j_l = Join(login_r) 'соеденили то, что взяли в login_j_l
 login_2 = Replace(login_j_l, " ", "") 'убили все пробелы из того, что получилось, и записали в переменную login_2
 'вопрос в том, зачем тогда тут цикл? И зачем столько переменных?
 'Если login_1_len - 1 > 0, то в итоге переменная login_2
 'будет иметь значение последней операции, видимо надо написать
 'примерно так:
 'login_2 = login_2 & Replace(login_j_l, " ", "")
Next 'l

_______________________
Colorized by: Eros.CodeSyntaxColor Engine


_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: Kolya007
Добавлено:17.10.2007 / 06:28
Смысл кода в следующем, есть к примеру число 0123456789, в результате выполнения кода должно получится иное число...
выполнение кода один раз, должно дать примерно такой результат: 9081726354, а выдает 9876543210... И все потому, что StrReverse срабатывает только один раз, когда l=0...
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
login_1 = Replace(login_j_asc, " ", "") // некое число
login_1_len = Len(login_1)
ReDim login_l(login_1_len)
ReDim login_1_l(login_1_len)
ReDim login_l_len(login_1_len)
ReDim login_r(login_1_len)
For l=0 To login_1_len - 1
login_l(l) = Left(login_1, login_1_len - l)
login_l_len(l) = Len(login_l(l))
login_1_l(l) = StrReverse(login_l(l))
login_r(l) = Left(login_1_l(l), login_l_len(l) - (login_l_len(l) - 1))
login_j_l = Join(login_r)
login_2 = Replace(login_j_l, " ", "")
Next 'l

Colorized by: Eros.CodeSyntaxColor Engine

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 3 | Автор: Kolya007
Добавлено:17.10.2007 / 06:32
Алексей, если надо, я могу сделать пояснение на каждой строке...

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 4 | Автор: Алексей
Добавлено:17.10.2007 / 06:49
Алексей, если надо, я могу сделать пояснение на каждой строке...

попробуй :)

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 5 | Автор: Kolya007
Добавлено:17.10.2007 / 07:01
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
login_1 = Replace(login_j_asc, " ", "") // некое число полученое в результате обработки логина
login_1_len = Len(login_1) //длина этого числа
ReDim login_l(login_1_len) //массив
ReDim login_1_l(login_1_len) // массив
ReDim login_l_len(login_1_len) // массив
ReDim login_r(login_1_len) // массив
For l=0 To login_1_len - 1 // это и так понятно
login_l(l) = Left(login_1, login_1_len - l) // берем число полученное в результате обработки логина и обрезаем его на l символов и записываем в массив
login_l_len(l) = Len(login_l(l)) //смотрим длину полученного числа и записываем в массив
login_1_l(l) = StrReverse(login_l(l)) //разворачиваем число и записываем в массив
login_r(l) = Left(login_1_l(l), login_l_len(l) - (login_l_len(l) - 1)) //образаем результат до 1 символа и записываем в массив
login_j_l = Join(login_r) // создаем строку из массива login_r
login_2 = Replace(login_j_l, " ", "") //вырезаем из строки пробелы, это будет находится за пределами цикла, в нем пока только для проверки
Next 'l

Colorized by: Eros.CodeSyntaxColor Engine

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 6 | Автор: Алексей
Добавлено:17.10.2007 / 07:09
Это в принципе понято, хотя все равно много лишнего кода :)
Непонято, куда ты записываешь результат? Как ты получаешь из 0123456789 число 9876543210? В какой переменной ты это берешь в конце выполнения это кода?

login_j_l = Join(login_r) // создаем строку из массива login_r
login_2 = Replace(login_j_l, " ", "") //вырезаем из строки пробелы, это будет находится за пределами цикла, в нем пока только для проверки

а так:
001:
002:
003:
004:
login_j_l = Join(login_r, "")

_______________________
Colorized by: Eros.CodeSyntaxColor Engine

разве не работает?

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 7 | Автор: Kolya007
Добавлено:17.10.2007 / 07:21
Это в принципе понято, хотя все равно много лишнего кода :)
Непонято, куда ты записываешь результат? Как ты получаешь из 0123456789 число 9876543210? В какой переменной ты это берешь в конце выполнения это кода?
login_j_l = Join(login_r) // создаем строку из массива login_r
login_2 = Replace(login_j_l, " ", "") //вырезаем из строки пробелы, это будет находится за пределами цикла, в нем пока только для проверки

а так:

001:
002:
003:
login_j_l = Join(login_r, "")

Colorized by: Eros.CodeSyntaxColor Engine


разве не работает?

login_2, это и есть тот промежуточный результат, для его вывода на экран используется переменная login_c...
Число 0123456789 я привел к примеру... А вот если их поставить в код, то в итоге выйдет именно 9876543210, и я никак непойму почему...
Насчет:
001:
002:
003:
login_j_l = Join(login_r, "")

Colorized by: Eros.CodeSyntaxColor Engine

непробовал...))
Код действует следующим образом:
0123456789 число
9876543210 реверс
9 символ в массив
876543210 число
012345678 реверс
0 символ в массив
и т.д.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 8 | Автор: Kolya007
Добавлено:17.10.2007 / 07:22
Та, я кажись понял, где просчитался, щас проверю...

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 9 | Автор: Алексей
Добавлено:17.10.2007 / 07:25
login_2, это и есть тот промежуточный результат, для его вывода на экран используется переменная login_c...

Тогда смотри мой комментарий к твоему коду в моем первом ответе.
По крайней мере одну проблему решишь точно :)

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 10 | Автор: Kolya007
Добавлено:17.10.2007 / 07:35
Все, я исправил свою ошибку...
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
login_1 = Replace(login_j_asc, " ", "")
login_1_len = Len(login_1)
ReDim login_l(login_1_len)
ReDim login_1_l(login_1_len)
ReDim login_l_len(login_1_len)
ReDim login_r(login_1_len)
For l=0 To login_1_len - 1
If l=0 Then
login_l(l) = Left(login_1, login_1_len - l)
Else
login_l(l) = Left(login_1_l(l-1), login_1_len - (l-1))
End If
login_l_len(l) = Len(login_l(l))
login_1_l(l) = StrReverse(login_l(l))
login_r(l) = Left(login_1_l(l), login_l_len(l) - (login_l_len(l) - 1))
login_j_l = Join(login_r)
Next 'l
login_2 = Replace(login_j_l, " ", "")

Colorized by: Eros.CodeSyntaxColor Engine

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

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 11 | Автор: Алексей
Добавлено:17.10.2007 / 07:50
Все получилось как надо...))

тогда уж и login_j_l = Join(login_r) можно за цикл вынести :)

Вопрос, как мне из бинарного потом вывести в десятичное?

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
Public Function GetDecimalNumber(ByVal strBinaruNumber As String) As Long
 'On Error Resume Next
 Dim strRead As String
 Dim lngResult As Long
 Dim lngCount As Long
 Dim i As Long
 
 lngCount = Len(strBinaruNumber): i = 1
 strRead = Mid(strBinaruNumber, i, 1)
 Do While Not strRead = vbNullString
  lngResult = lngResult + (CLng(strRead) * (2 ^ (lngCount - i)))
  i = i + 1
  strRead = Mid(strBinaruNumber, i, 1)
 Loop
 
 GetDecimalNumber = lngResult
End Function

_______________________
Colorized by: Eros.CodeSyntaxColor Engine


_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 12 | Автор: Kolya007
Добавлено:17.10.2007 / 08:01
Это на классический ASP?..))
Если да, то можно без создания функции обойтись?..))

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 13 | Автор: Алексей
Добавлено:17.10.2007 / 08:05
Это на классическом Visual Basic :))
Можно и без функции, да и Dim-ы надо бы поубивать :)
Хотя с функцией было бы удобней, все функции обычно в один модуль кидают, а потом инклудят этот модуль и используют функции, находящиеся в нем.

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 14 | Автор: Kolya007
Добавлено:17.10.2007 / 08:10
Ну зачем создовать целый модуль из-за одной страницы...))
Вот для целого форума удобнее...))

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 15 | Автор: Алексей
Добавлено:17.10.2007 / 08:16
Ну зачем создовать целый модуль из-за одной страницы...))
Вот для целого форума удобнее...))

В будущем пригодится, сделай себе свой Framework :))

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


где оно хранится? | Автор: Neco
Добавлено: 16.10.2007 / 18:01 | ответов: 5 | просмотров: 86

такой кусочек кода страницы:

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
Partial Class Default2
  Inherits System.Web.UI.Page
  Dim some As Integer
  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    some = 5
    pub.some = 5
  End Sub
End Class

Colorized by: Eros.CodeSyntaxColor Engine

pub - класс содержащий Public Shared some as Integer

Если я установлю стоп-точку на первой строке, то при сабмите и даже при передебаге страницы переменная some будет всегда равна нулю, а переменная pub.some будет где-то храниться и всегда равна 5!
Вопросы:
1) почему это происходит?
2) где хранится переменная?

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: Алексей
Добавлено:17.10.2007 / 05:22

Различные сроки жизни


Переменная, объявленная на уровне модуля, обычно существует на протяжении всего срока работы приложения. Если переменная объявлена в рамках класса или структуры и не является совместно используемой, она существует как отдельная копия для каждого экземпляра класса или структуры, в которых она объявлена. Срок жизни каждой из таких переменных совпадает со сроком жизни экземпляра. Переменная, объявленная как Shared, обладает сроком жизни, который продолжается лишь в течение работы приложения.

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

Начало срока жизни


Срок жизни локальной переменной начинается с началом выполнения процедуры, в которой она объявлена. Каждой локальной переменной в начале выполнения процедуры присваивается значение по умолчанию, предусмотренное для ее типа. Числовым переменным (включая Byte и Char) по умолчанию присваивается ноль, переменным типа Date — полночь 1 января 1 года, переменным типа BooleanFalse, переменным ссылочного типа (включая строки, массивы и Object) — Nothing.

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

Если переменная объявляется с инициализатором, ей присваивается указанное значение при выполнении оператора объявления, например:

001:
002:
003:
Dim X As Double = 18.973  ' X had previously been initialized to 0.

Colorized by: Eros.CodeSyntaxColor Engine


Переменные, объявленные в блоке внутри процедуры, инициализируются при входе в процедуру. Это происходит вне зависимости от того, выполняется ли этот блок в конечном итоге или нет.

Окончание срока жизни


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

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

Продление срока жизни


Если локальная переменная объявляется с зарезервированным словом Static, срок ее жизни превышает время выполнения процедуры, в которой она объявлена. Если процедура находится внутри модуля, переменная существует, пока приложение продолжает работать.

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

В следующем примере функция RunningTotal вычисляет промежуточную сумму путем прибавления нового значения к сумме предыдущих значений, которая хранится в статической переменной ApplesSold:

001:
002:
003:
004:
005:
006:
007:
Function RunningTotal(ByVal Num As Integer) As Integer
  Static ApplesSold As Integer
  ApplesSold = ApplesSold + Num
  Return ApplesSold ' ApplesSold keeps its current value.
End Function

Colorized by: Eros.CodeSyntaxColor Engine


Если бы ApplesSold не была объявлена как Static, предыдущие накопленные значения не сохранялись бы от вызова к вызову функции, и функция просто возвращала бы одно и то же значение, с которым она вызывается.

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

(c) msdn


--
С наилучшими пожеланиями,
Немиро Алексей http://aleksey.nemiro.ru/

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: Neco
Добавлено:17.10.2007 / 08:02
спасибо за ответ
но по-моему это справедливо для всех языков программирования. но в разрезе asp.net ситуация-то несколько иная - чтобы помнить значение переменной её необходимо где-то хранить. на данный момент я знаю о двух способах хранения состояния - на стороне клиента (viewstate) и на стороне сервера (sessionstate). sessionstate я так понимаю работает только при включенных "печеньях".
итак, где же хранится эта переменная и как мне запретить её хранение, чтобы сэкономить ресурсы к примеру?

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 3 | Автор: Алексей
Добавлено:17.10.2007 / 08:14
итак, где же хранится эта переменная

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

и как мне запретить её хранение, чтобы сэкономить ресурсы к примеру?

не юзать Shared :)

на данный момент я знаю о двух способах хранения состояния - на стороне клиента (viewstate) и на стороне сервера (sessionstate)

Еще, кстати, есть Application.

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 4 | Автор: Neco
Добавлено:17.10.2007 / 12:07
001:
002:
003:
хранится она в памяти, в данном случае в памяти сервака.

Colorized by: Eros.CodeSyntaxColor Engine

ну в конечном итоге всё там хранится, даже ViewState объекты - их же распаковывают перед использованием :)

в общем я понял так что вся эта петрушка хранится в ApplicationState

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 5 | Автор: Алексей
Добавлено:17.10.2007 / 14:26
ну в конечном итоге всё там хранится, даже ViewState объекты - их же распаковывают перед использованием :)

еще немного, и мы дружно прейдем к выводу, что aspx-страницы обрабатываются на сервере :)))

в общем я понял так что вся эта петрушка хранится в ApplicationState

Попробуй сделать Application.Clear() и ты сможешь проверить эту теорию :)
001:
002:
003:
004:
005:
pub.some = 5
Application.Clear()

_______________________
Colorized by: Eros.CodeSyntaxColor Engine


_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Наверх

 

Последние статьи

Взаимодействие с другими сайтами через HTTP (HttpWebRequest и HttpWebResponse)
Автор: Немиро Алексей | добавлено: 27.07.2007 / 14:01 | просмотров: 1061

В данной статье речь пойдет о том, как можно программно заполнить и отправить Web-форму, а также получить результат с использованием довольно простых классов - HttpWebRequest и HttpWebResponse.

Работа с SQL – Запросы
Автор: Хабибулин А. (aka Bille Gates) | добавлено: 22.07.2007 / 04:43 | просмотров: 1847

В данной статье рассмотрены часто используемые SQL-запросы и приведены примеры их использования.

Использование XML.Serialization
Автор: Немиро Алексей | добавлено: 19.07.2007 / 15:38 | просмотров: 504

В данном обзоре речь пойдет об использование XML.Serialization в .NET и ее применении на примере сохранения и считывания настроек программы с использованием синтаксиса языка Visual Basic .NET.

Выбор языка программирования для научных работ (2-я редакция)
Автор: Юдин С. Ю. | добавлено: 15.03.2007 / 02:49 | просмотров: 2450

Идея написания этой статьи возникла после того, как на одном из сайтов по физике http://physics.nad.ru/aniboard/messages/291.html я обнаружил интересный алгоритм моделирования движения тела в поле постоянной напряженности по различным направляющим. Вернее, меня заинтересовал не весь алгоритм, т.к. основа их всех одна (принцип Даламбера, если не считать квазиалгоритма с применением уравнений Лагранжа 2-го рода) и различаются они только способом определения реакций в месте соприкосновения тел. ...

Работаем с MIME
Автор: Немиро Алексей | добавлено: 29.11.2006 / 14:46 | просмотров: 2343

Не так давно мне пришлось немного поработать MIME (Multipurpose Internet Mail Extension) - это стандарт почтовых сообщений, в РуНете (Russian Internet) я не нашел нормального описания спецификации MIME, и посему решил написать небольшую статейку на эту тему. В данной статье вы узнаете об основных особенностях и стандартах MIME, а также научитесь «читать» MIME с использованием синтаксиса языка Visual Basic .NET 2005.

 

Статьи на Kbyte.Ru

Наверх

 

Интересные коды и решения

Как узнать IP-адрес посетителя?
Дата добавления: 01.09.2006 / 12:20 | просмотров: 1296 | платформа: ASP

Как создать новую папку (каталог)?
Дата добавления: 31.07.2006 / 12:36 | просмотров: 1600 | платформа: VB

Как программно изменить заголовок (Title) страницы?
Дата добавления: 31.07.2006 / 13:25 | просмотров: 869 | платформа: ASP .NET (VB)

Как получить случайное число?
Дата добавления: 16.08.2006 / 19:52 | просмотров: 652 | платформа: VB

Как установить анимированный курсор?
Дата добавления: 16.08.2006 / 19:49 | просмотров: 1325 | платформа: VB

Проверка существования файла с использованием API
Дата добавления: 31.07.2006 / 12:41 | просмотров: 939 | платформа: VB

Как проверить корректность E-Mail?
Дата добавления: 17.08.2006 / 18:18 | просмотров: 991 | платформа: VB

Анализ даты стандарта MM/DD/YYYY и MM/DD/YY
Дата добавления: 24.03.2007 / 10:59 | просмотров: 616 | платформа: RegEx

Как программно дополнить заголовок (Title) страницы?
Дата добавления: 31.07.2006 / 13:27 | просмотров: 741 | платформа: ASP .NET (VB)

Как динамически добавить HTML-элемент управления?
Дата добавления: 17.08.2006 / 17:49 | просмотров: 841 | платформа: ASP .NET (VB)

 

Универсальные коды на Kbyte.Ru

Наверх

 

Юмор на Kbyte.Ru

Весь покрытый BADами абсалютно весь HARDDISC невезения в магазине есть...

 

Рейтинг: 113
Всего голосов: 188
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Мальчик с консервной банкой подходит к милиционеру:
- Дядя милиционер, откройте банку!
милиционер стучит в банку и говорит:
- откройте, милиция!

 

Рейтинг: 89
Всего голосов: 164
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Алгебра у программистов. Преподаватель пишет на доске: sin X = 1.
- Ну, кто может найти X?
Выбегает программист и так радостно:
- Вот, вот X, - показывает на X.

 

Рейтинг: 128
Всего голосов: 204
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Знак судьбы. Дорожный знак "Ограничение скорости" сержант ГИБДД Петренко всегда считал для себя хорошим знаком.

 

Рейтинг: 818
Всего голосов: 1184
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

- У меня чёрный пояс по карате!
- А у меня жёлтая резинка от трусов по плаванию!

 

Рейтинг: 169
Всего голосов: 216
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Ты мне сегодня во сне пpиснилась!
- В эpотическом?
- Hет, в обычном.
- А как ты их вообще pазличаешь?
- А у эpотических pасшиpение *.JPG

 

Рейтинг: 130
Всего голосов: 218
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Новый русский заходит в ресторан, подзывает официанта и говорит:
- Ваше фирменное блюдо, быстро.
Официант убегает и через несколько минуты приносит мидии.
Новый русский шепотом:
- Слышь браток подскажи как их есть то?
Официант:
- Ну вы поделываете в раковине небольшую дырочку и высасываете содержимое.
Новый русский проделывает дырочку. Сосет, сосет, а из раковины ничего не высасывается. Тогда он подносит ее к лицу и смотрит в внутрь. А там моллюзг расперса и говорит:
- Чего смотришь, соси дальше.

 

Рейтинг: 80
Всего голосов: 148
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Открыт новый поисковый сервер для новых русских: www.tipa.au

 

Рейтинг: 137
Всего голосов: 173
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Учительница на уроке:
Дети расскажите историю чтоб она заканчивалась словами "Мама у меня одна"
Маша:
Мы летом с мамой ездили в сочи. Там красивая природа. Мне очень понравилось. Спасибо тебе мама, мама у меня одна.
Петя:
Мы с мамой на выходных ходили в горы. Собирали цветочки. Наелись шашлыка. Спасибо тебе мама, мама у меня одна.
Вовочка:
Пришёл я вчера со школы домой. Хочется жирать, денег на обед мне не дают. Открываю холодильник стоит пара бутылок пива. Одну я выпил. просыпается мать с будуна:
-Вальдемар приниси мне две бутылки пива
-мама у меня одна

 

Рейтинг: 107
Всего голосов: 179
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Два муравья едят слона. Проходит десять лет.
- Тот самый вкус.
- Тот самый слон.

 

Рейтинг: 84
Всего голосов: 118
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Весь юмор на Kbyte.Ru

Наверх


Выпуск подготовил: R-KDR-19826

Редактор: Немиро Алексей

Copyright (c) Nemiro AS, 2005-2007


В избранное