Все игры
Обсуждения
Сортировать: по обновлениям | по дате | по рейтингу Отображать записи: Полный текст | Заголовки

Архиватор текстовых файлов на JAVA

Требуется написать архиватор ТЕКСТОВЫХ файлов БЕЗ сжатия на Java.
Если кто-то знает как это сделать или где об этом почитать, ПОМОГИТЕ ПОЖАЛУЙСТА!

e-mail: barkadron@mail.ru
icq: 444465111

Егор Т, 24-09-2008 06:49 (ссылка)

ANSI -> Unicod в Delphi 7

Здравствуйте.
Я делаю программку, чтобы она подготавливала текст для
iPod а: разбивала на кусочки длинной 1999 символов, и перекодировала
из ANSI в UNICOD. Первое у меня получилось, а второе только в UTF-8.
Если пробовать дальше в Юникод, то получается либо ANSI, либо ваще
не получается. Вот Отрывок кода:

var
srcn,
otpn, otpd,buff, inst, ost: string;
i, c: integer;
f, o: TextFile;
Dest: PWideChar;
begin
srcn:=Edit1.Text;
otpd:=Edit2.Text;
if fileexists(srcn) then begin
if not DirectoryExists(otpd) then ForceDirectories(otpd);
inst:='';                                                                      //Приступаем к считыанию исходного файла
assignFile(f, srcn);
reset(f);
repeat
if not EOF(f) then begin
readln(f, buff);
inst:=inst+ ' ' + buff;
end;
until EOF(F);
CloseFile(f);
c:=0;                                                                              //Все, исходный файл считали
repeat                                                                          //Приступаем к разбивке и к перекодироовке
ost:='';
c:=c+1;
for i:=1 to 1999 do
if Length(inst) > 0 then begin
ost:=ost+inst[1];
buff:=copy(inst, 2, (Length(inst)-1));
inst:=buff;
end;
AssignFile(o, (otpd+'\'+ExtractFileName(srcn)+'_part'+ IntToStr(c) +'.txt'));
rewrite(o);
GetMem(Dest, 4000);
Utf8ToUnicode(Dest, PAnsiChar(String(AnsiToUTF8(ost))), 4000);
writeln(o, Dest);                                                                              //пробовал здесь еще так - writeln(o, String(Dest));
closefile(o);
FreeMem(Dest, 4000);
until length(inst) = 0;
end
else ShowMessage('File not found!!!!EEEERRROOOORRR!!!!');
end;
 

С праздником!

Поздравляю с Днём Программиста всех членов нашего сообщества.

Faster Fastereusivich, 05-09-2008 16:34 (ссылка)

Проверка , даного сообщества ..

Нунемного заголовок кричащий, просто мне интересно кто тут сидит ...
 
Есть вопросы:
1.есть ли люди которые хотят заняться серьёзным проектом
2.знание Builder c++ (code Gear)
3.Сетеавые компоненты
4.написание своих компонетов, в начале работы упор именно сюда будет сделан, сложные списки и прочее
5.Желание пинять участие в проекте по написанию SCADA системы ...
 
ОРбщая информация, скада пишется на халявных основаниях , при выходе бетва релиза будет сделан сайт и прочее, пока комерциализация не планируется тоесть собственно пишется для себя...
 
основное скада работает с OPC сервером для доступа к промышленным микроконтроллерам , на текущий момент есть только реализация этого доступа к контроллерам фирмы DEP это промышленнве контроллеры.
 
ну как бонусы проекта , возможность засветиться, в данный момент скада планируется к внедрению в крупном предприятии хабаровского края, для реализации телемеханики, и собственно после удачного её внедрения плонируется начатьеё продовать, за нормальную сумму денег а не за астрономическую.
 
в общем всё прочее инфо либомылом либо пишите мне в блог либо ещё как ...

WinSock и почта

  Кто нить знает как с помощью WinSock (1) в дельфи моня письмо отправить, очень надо
или ссылку дайте
 

Дима Чопей, 20-08-2008 15:05 (ссылка)

Оценка

Оцените наш проект.Только серезно. http://softforfan.narod.ru/ 

GDI в дельфи


 Ребятки помогите. когда задаю

Image1.Canvas.Pen.Color:=ColorBox2.Color -  перестает рисовать вобще

Image1.Canvas.Pen.Color:=clBlack а есль так то рисует как мне сделать чтоб с ColotBox работал

Егор Т, 17-06-2008 14:36 (ссылка)

Работа с файлами в Delphi 7

Здравствуйте!
Я пишу прогу в DELPHI 7
типа базы данных, используя стандартные
функции работы с файлами типа assignfile.
При добавлении записи в базу прога должна
ессно проверять наличие такой же записи и
выводить сообщение, что запись будет заменена.
При работе проги, если заменить какую нибудь
запись, прога начинает глючить: при попытке
добавить или удалить запись выдает ошибку I/O error 32
и не добавляет/не удаляет запись, хотя замена проходит хорошо.
Что мне делать чтобы работало нормально?
Вот отрывок кода:


procedure TForm1.BitBtn1Click(Sender: TObject);
var
r: Bool;
buff, s: string;
begin
if TitleEdit.Text = '' then ShowMessage('Не задано название элемента!')
else begin
r:=false;
if not FileExists(DBName) then begin //если базы нету
assignFile(f, DBName);
rewrite(f);
writeln(f, TitleEdit.Text);
ForceDirectories(ExtractFilePath(DBName)+'data\'+TitleEdit.Text);
DataList.Lines.SaveToFile(ExtractFilePath(DBName)+'data\'+TitleEdit.Text+'\'+'index.rtf');
DataPic.Picture.SaveToFile(ExtractFilePath(DBName)+'data\'+TitleEdit.Text+'\'+'pic.jpg');
writeln(f, ('data\'+TitleEdit.Text+'\'+'index.rtf'));
closeFile(f);
r:=true;
end
else begin //значит база есть
assignFile(f, DBName);
reset(f);
repeat
readln(f, buff);
readln(f, s);
if Buff=TitleEdit.Text then begin //в базе есть такой элемент, заменяем его
ShowMessage('Элемент будет заменен!');
r:=true;
DataList.Lines.SaveToFile(ExtractFilePath(DBName)+'data\'+TitleEdit.Text+'\'+'index.rtf');
DataPic.Picture.SaveToFile(ExtractFilePath(DBName)+'data\'+TitleEdit.Text+'\'+'pic.jpg');
exit;
end;
until eof(f);
closeFile(f);
end;
if (r=false) then begin
assignFile(f, DBName);
try
append(f);
except
closeFile(f);
assignFile(f, DBName);
append(f);
end;
writeln(f, TitleEdit.text);
writeln(f, ('data\'+TitleEdit.Text+'\'+'index.rtf'));
ForceDirectories(ExtractFilePath(DBName)+'data\'+TitleEdit.Text);
DataList.Lines.SaveToFile(ExtractFilePath(DBName)+'data\'+TitleEdit.Text+'\'+'index.rtf');
DataPic.Picture.SaveToFile(ExtractFilePath(DBName)+'data\'+TitleEdit.Text+'\'+'pic.jpg');
closeFile(f);
end;
end;
if CheckBox2.Checked then BitBtn4.OnClick(BitBtn4);
end;

настроение: После вирусной атаки
хочется: отладить программу
слушаю: отстой

Буду рад услышать ваше мнение


http://softmaster.ucoz.net
Данный сайт еще в разработке.
Он будет объединять сообщества программистов...
В каждом из сообществ программистов будет прописана ссылка на данный портал...

Так же прошу помочь в разработке сайта. Если есть какие ни будь идеи пишите на мыло или стучите в агент я там 24 часа...

настроение: Озадаченное
хочется: Секиса
слушаю: Энигма

Предложение

Т.К.  Я сам являюсь создателем одного из сообществ программистов у меня есть предложение на счет того что бы объединить все сообщества программистов ссылками. Например можно сделать

(Новую запись=> Заголовка "Наши друзья"=> вместо текста прописать ссылки сообществ и комментарий)


PS: Если у кого есть идеи как сделать более удобное перемещение между сообществами пишите на "мыло"

 

настроение: Мечтательное

Без заголовка

Есть ли возможность писать/читать CMOS в проге под WinXP/2k, не используя RTX SDK ?
P.S. не критично, но интересно... может кто-нибудь сталкивался с подобной проблемой?

Метки: С++

Как подключить сервлет в *.JSP веб-странице? Пожалуйста, помогит

Вроде должны быть теги типа .. , где h: - это описанный тег в одной из внешних библиотек тегов Java. Помогите разробраться. Буду благодарен за ЛЮБУЮ ИНФУ. ССылки не присылайте, плеаз 

Вопрос

Всем привет! кто может подсказать как сделать в консоле на С++ проверку вводимых типов данных тоесть чтоб если программа ожидает тип int а пользователь введет char выводилось сообщение об ошибке

настроение: Задумчивое

Вопрос для всех

Я вот набросал, так сказать, наброски программы "Клавиатурный тренежер" на Делфи... И думаю стоить ли его писать кагда вокруг их полным пално... а...???

Жду ваших ответов на odious86@mail.ru

настроение: Задумчивое
хочется: спать
слушаю: да нету у меня колонок...

Моя программа

Недавно написал маленькую программку под названием "Чайник". Оцените и прокомментируйте ее пожалуйста.
Скачать

настроение: Задумчивое

Стас ***, 17-03-2008 14:37 (ссылка)

Почему не компилиться прога на С++???

Подскажите правильно сделал или нет и помогите исправить ошибки дана задача : Дана матрица N на M . Вывести количество строк матрицы, в которых число положительных элементов больше числа отрицательных элементов.

Вот код я написал

#include
#include
#include
#include


int main()
{
int N=3;

int M=3;
int A[N][M];

int counf = 0;
int min=0;
srand(time(0));
for(int ii = 0; ii < N; ii ++)
for (int i=0;i 0)conf++;
if ( A[i][j] < 0)min++;s++;

if(conf>min)pruntf("Polohit elementov bolhe v stroke :%d", s);

while(1);


Метки: С++

Всем привет - я тут проект статьи набросал - помогите оценить

Знакомство с MONO
или как создать свой собственный firefox за полчаса
Я всегда считал, что программирование в UNIX сложнее и запутанне по сравнению с Wintel средами. Конечно это мое субъективное мнение, но думаю многие согласяться с ним. Особенно хорошо это чувствуется при попытке написать оконное приложение. Не смотря на наличие IDE сред , таких как Kdevelop, создать даже простое окно с парой кнопок было для меня весьма непростой задачей. В силу специфики работы приходиться писать программы как для Windows так и для UNIX. Моим основным дистрибутивом Linux, который я использую в работе, является Gentoo Linux.
Итак после небольшого вступления перейдем к нашей основной теме. Я давно читал в обзорах об открытой версии .NET Framework под названием Mono. Поскольку в Windows я писал программы как раз с использованием .Net, меня естественно заинтересовала возможность использовать один и тот же код в обеих средах. И потом когда работаешь с одним инструментом это вседа проще , чем двумя, не надо перестраивать стиль мышления .... Итак перейдем непосредственно к теме нашей статьи. Во первых убедимся, что в системе установлен пакет mono, для этого достаточно выполнить команду :
#emerge -s dev-lang/mono
если Вы увидите нечто подобное :
dev-lang/mono
Latest version available: 1.2.5.1-r1
Latest version installed: 1.2.5.1-r1
Size of files: 17,082 kB
Homepage: http://www.go-mono.com
Description: Mono runtime and class libraries, a C# compiler/interpreter
License: || ( GPL-2 LGPL-2 X11 )
то можно смело сказать, что система mono у Вас установленна. Желательно добавить еще mono-tools - набор утилит облегчающих жизнь программисту. Для mono существует среда программирования по названием monodevelop и для ускорения процесса работы можно установить и ее. Но давайте пока что ободемся простым блокнотом и командной строкой. Дело в том, что это бета-версия среды программирования и при работе с ней возможны ошибки – программа попросту вылетает и очень обидно, когда теряещь код, который ты создавал в течение последнего часа ...
Для начала создадим простое приложение, можно сказать «сакраментальное», с которого начинается изучением любого языка программирования. Поприветствуем окружающий мир. Откройте любой текстовый редактор и добавьте туда следующие строчки:

using System;
public class Test{

public static void Main(string[] args) {

Console.Writeline(«Hello,World!!!»);

}
}

после чего сохраните файл под именем Test.cs. Обратите внимание на то , что имя файла совпадает с именем класса, это важно!!! Далее в командной строке задаем следующую команду:

uran@dmitry$ mcs Test.cs

Если все сделанно правильно и без ошибок, то в результате появляется файл Test.exe. Теперь достаточно набрать команду

uran@dmitry$ mono Test.exe

и мы увидим на экране наше приветствие. Для решения большинства системных задач, вывода в консоль вполне достаточно, но ведь мы хотим создать оконное приложение. Сейчас убедимся, что сделать это не просто, а очень просто, даже не используя визуальные средства программирования и редакторы ресурсов. Для создания оконных приложений в Gnome для mono существует библиотека Gtk#. Она дает доступ к большой библиотеке различных управляющих элементов, которые программисты называют виджетами. Поскольку мы двигаемся от простого к сложному, то в качестве упражнения создадим оконное приложение в одной кнопкой. Для простоты и наглядности мы не будем привязывать какое либо событие к нашей кнопке. Давайте откроем текстовый редактор и напечатаем следующий код:

using Gtk;
using System;
public class Button_Test{
public static void Main(string[] args){
new Button_Test();
}
//конструктор класса
Button_Test(){
Application.Init();
Window mwin = new Window(«Button test»);
mwin.SetDefaultSize(100,50);
mwin.DeleteEvent += new DeleteEventHandler(
onClosemwin);

Button b = new Button(«PRESS»);
mwin.Add(b);
mwin.ShowAll();
Application.Run();
}

// обработка события «закрытие окна»
void onClosemwin(object o, DeleteEnentsArgs a)
{
Application.Quit();
}

}

после чего сохраним файл под именем Button_Test.cs. Здесь необходимо дать несколько пояснений тому , как работаем программа использующая графическую библиотеку Gtk. Первое отличие от библиотеки Windows.Forms, в конструкторе класса обязательно должны вызываться два метода класса Gtk.Application, это методы Init и Run, а в процедуре обрабатывающей завершение приложения вызывается метод Quit. Эти методы должны обязательно присутствовать в любой программе использующей библиотеку виджетов, они нужны для нормальной работы программы. Второе отличие от программ использующих System.Windows.Forms, в данной программе Вы не найдете явного обращения к параметрам Height и Width. В Gtk используется идеология «контейнеров», то есть все управляющие элементы деляться на две категории – собственно управляющие элементы и контейнеры, специализированные виджеты, которые собержат в себе управляющие элементы, такие как кнопки, полосы прокрутки и т.д. И каждый управляющий элемент стремиться занять все место внутри «контейнера». Таким образом отпадает необходимость в отслеживании места каждой кнопки, каждой полосы прокрутки при изменении размеров окна приложения.
Перейдем к разбору программы. В кострукторе класса, создаем базовое окно, далее вызвав метод SetDefaultSize устанавливаем размер основного окна по умолчанию. Следующим шагом устанавливаем обработчик события «закрыть окно» . В этой функции мы вызовем метод Quit класса Application. И последний штрих – это создание кнопки, как отмечали выше – мы только создаем управляющий элемент Кнопка, не привязывая к нему никаких обработчиков. Теперь если мы скомпилируем и запустим нашу программу то на экране появиться окно с большой кнопкой ... Обратите внимание, кнопка занимает все пространство окна – в случае когда мы не задаем дополнительные «контейнеры» само базовое окно служит контейнером для управляющего элемента. С помощью данной программы я попытался создать общий шаблон для последующих примеров. Сейчас мы можем перейти к созданию основной нашей цели – а именно аналога интернет броузера Mozilla-Firefox. Для этого воспользуемся библиотекой Gecko#.
Структурно окно нашей программы будет разбито на три зоны. Первая зона – управляющие кнопки и адресная строка, вторая зона – закладки с web страничками, и третья зона – статусная строка – в ней мы будем отображать процесс загрузки текущей страницы и ссылки , которые буду отображаться при наведении на них курсора. Текст самой программы приведен ниже. Наберите его в текстовом редакторе
//*************************************************************************
// Пример программирования в Mono
// Создаем окно, добавляем кнопки и записную книжку с закладками
//
// Далее добавляем ядро Gecko и получаем пример интернет браузера
//
// команда компиляции: mcs -pkg:gtk-sharp-2.0 -pkg:gecko-sharp-2.0 notebook_t.cs
//***************************************************************************
using System;
using Gtk;
using GtkSharp;
using Gecko;
using Cairo;
//using GtkGL;

class notebook_t
{
Statusbar sb;
static ProgressBar pb;
Button back, fwrd, stop;
Button Pagen, Test;
Notebook nb;
Label l;
VBox vbg;
Entry url;
const int MAXBRWS=10;
WebControl[] brwsr = new WebControl[MAXBRWS];
Window win;
int cnt,maxnow;

static void Main ()
{
new notebook_t ();
}
//конструктор класса
notebook_t ()
{
Application.Init (); //Инициализируем Gtk библиотеку
win = new Window ("NotebookSample"); //Создаем основнок окно программы
win.DeleteEvent += new DeleteEventHandler (OnWinDelete); //Задаем обработчик закрытия окна
win.SetDefaultSize (800, 400); //Устанавливаем размеры окна по умолчанию
HBox hbmain = new HBox(false,3); //Создаем элементы HBox и VBox для размещения
VBox vmenu = new VBox(false,3) ; //наших управляющих элементов
back = new Button(Gtk.Stock.GoBack);
back.Clicked += new EventHandler(OnBackClick);
hbmain.PackStart(back,false,false,0);
fwrd = new Button(Gtk.Stock.GoForward);
fwrd.Clicked += new EventHandler(OnFwrdClick);
hbmain.PackStart(fwrd,false,false,0);
stop = new Button(Gtk.Stock.Stop);
stop.Clicked += new EventHandler(OnStopClick);
hbmain.PackStart(stop,false,false,0);

Pagen = new Button("Закладка");
Pagen.Clicked += new EventHandler(OnPagenClick);
hbmain.PackStart(Pagen,false,false,0);
Test = new Button("Выход") ;
Test.Clicked += new EventHandler(OnTestClick);
hbmain.PackStart(Test,false,false,0);
Label adrlab = new Label ("Адрес:");
hbmain.PackStart(adrlab,false,false,0);
url = new Entry("http://www.ya.ru");
url.Activated += new EventHandler(OnUrlActivated);
hbmain.PackStart(url,true,true,0);
vmenu.PackStart(hbmain,false,true,1);
cnt=0; maxnow=0;
brwsr[cnt] = new WebControl();
brwsr[cnt].LinkMsg += new EventHandler(OnBrwsrLinkMsg);
brwsr[cnt].Progress += new ProgressHandler(OnBrwsrProgress);
brwsr[cnt].NetStop += new EventHandler(OnBrwsrNetStop);
brwsr[cnt].LoadUrl(url.Text);
nb = new Notebook ();
nb.SwitchPage += new SwitchPageHandler(OnNBSwitchPage);
//for (int i = 0; i < 1; i ++)
//{
string label = String.Format ("Страница: "+ url.Text);
VBox gvbox = new VBox();
gvbox.PackEnd(brwsr[cnt],true,true,1);
nb.AppendPage (gvbox, new Label (label));
// }
vmenu.PackStart(nb,true,true,0);
HBox bbox = new HBox(false,2);

pb = new ProgressBar();
pb.Orientation = ProgressBarOrientation.LeftToRight;
//pb.Adjustment.Lower = 0 ;
//pb.Adjustment.Upper = 1000 ;
bbox.PackStart(pb,false,false,0);


sb = new Statusbar();
sb.Push(1,"Поехали");
//sb.Push(2,"Второе сообщение");
bbox.PackStart(sb,true,true,0);

vmenu.PackStart(bbox,false,true,1);
win.Add(vmenu);
//win.Add (nb);
win.ShowAll ();
Application.Run ();
}
//обработчик собития нажатия кнопки
void OnPagenClick(object obj, EventArgs e)
{
if (maxnow < MAXBRWS) {
maxnow = maxnow + 1 ;
cnt = maxnow ;
brwsr[cnt] = new WebControl();
brwsr[cnt].LinkMsg += new EventHandler(OnBrwsrLinkMsg);
brwsr[cnt].Progress += new ProgressHandler(OnBrwsrProgress);
brwsr[cnt].NetStop += new EventHandler(OnBrwsrNetStop);
brwsr[cnt].LoadUrl("http://www.yandex.ru");

string lab = String.Format ("Стр под ");
l = new Label(lab);
vbg = new VBox();
vbg.PackEnd(brwsr[cnt],true,true,1);
nb.AppendPage (vbg, l);
nb.ShowAll();
}
}
void OnTestClick(object obj, EventArgs e)
{
Application.Quit();
}

//обработчик события закрытия окна приложения
void OnWinDelete (object obj, DeleteEventArgs args)
{
Application.Quit ();
}

void OnUrlActivated(object obj, EventArgs e)
{
pb.Adjustment.Value = 0;
brwsr[cnt].LoadUrl(url.Text.Trim());
}

void OnBackClick(object obj, EventArgs e)
{
brwsr[cnt].GoBack();
}

void OnFwrdClick(object obj, EventArgs e)
{
brwsr[cnt].GoForward();
}

void OnStopClick(object obj, EventArgs e)
{
brwsr[cnt].StopLoad();
OnBrwsrNetStop(obj, e);
}

void OnBrwsrLinkMsg(object obj, EventArgs e)
{
sb.Pop(1);
sb.Push(1, brwsr[cnt].LinkMessage);
}

void OnBrwsrProgress(object obj, ProgressArgs e)
{
//if (e.Curprogress < pb.Adjustment.Upper) {
pb.Adjustment.Value = e.Curprogress ;
pb.ShowAll();
//}
}

void OnBrwsrNetStop(object obj, EventArgs e)
{
pb.Adjustment.Value = 0 ;
pb.ShowAll();
}

void OnNBSwitchPage(object obj, SwitchPageArgs es)
{
if (sb != null) {
//sb.Pop(1);
//string s = String.Format("switching page {0}",nb.CurrentPage) ;
//sb.Push(1,s);
}
cnt = nb.CurrentPage ;
}


}

премиум на rapidshare.com

Киньте кому не жалко премиум на rapidshare.com а то файлов надо много скачать.

Без заголовка

Помогите, пожалуйста! Я пытаюсь создать текстовый редактор на с++, но не знаю алгоритм Печати страници и алгоритм сохранения файла с расширением(Пока файлы у меня сохраняются без расширения). Заранее благодарю!

Метки: С++

Проект ALL-BEST for Russia, построенный на HTML-движке.

Здравствуйте уважаемые блоггеры сообщества (ну, типа все знают какого), пишет вам уже не очень начинающий, ну и не очень опытный, правда относительно, программист. Опыта у меня по HTML-программированию где-то года 1.5, меня просто затащило так, что не отпускает до сих пор. В общем, хочу представить на ваш суд свой дебютный проект - ALL-BEST for Russia, делал я его не много не мало 3 месяца, и продолжаю делать до сих пор. Он построен в основном на HTML и JavaScript, я пытаюсь выжать всё возможное из HTML, в конструкции использованы: CSS, IFrame, и таблицы. В общем посмотрите, почитайте, если кому понравится конструкция проекта, он скомпилирован в формат .chm, поэтому исходники(если кто захочет) я дам отдельно. Развитие проекта идёт здесь. Спасибо!

Открылась онлайн версия - AfR Online

настроение: Занятое
слушаю: Nevada Tan - Neustart

Метки: HTML-проект

Без заголовка

Моно какнить в Viual Basic сделать так, чтобы нельзя бло вызвать меню Пуск и Деспетчер задач!

Егор Т, 09-02-2008 15:20 (ссылка)

Мая прога

Я работаю в Delphi.
Я добавил в свою прогу возможность ассоциации
файлов. При выходе имя файла сохраняеца.
При следующем запуске ListBox пустой
((((вазможность асоцыацыи -- это штобы тыкаешь файл (ну например
*.txt) У меня это LDW -- и в Лист бокс загружаются строки
(у меня список файлов)(LoadFromFile
) . Всё нормально загружается. При OnClose сохраняю имя файла
в файл (
AssignFile(f, 'n.ini');
***
Writeln(f, ListFName);
closeFile;)
При следущем OnCreate читаю из файла с именем
файла-списка, Загружаю тот файл в лист бокс, а лист бокс пустой.
))))

настроение: Задумчивое
хочется: Ответа

Без заголовка

Подскажите ктонить, как можно на странице сообщества счётчик какой-нибудь поставить! И можь ещё какие навороты!

Без заголовка

Как можно взломать пароль к e-mail?

Сергей ***, 02-02-2008 17:40 (ссылка)

С++

Помогу при проблемах с программами написанными на С++.
Да и вообще обсужу вопросы программирования на этом языке.
Пишите tors_kirill@mail.ru

настроение: Занятое

В этой группе, возможно, есть записи, доступные только её участникам.
Чтобы их читать, Вам нужно вступить в группу