Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.04.14;
Скачать: [xml.tar.bz2];

Вниз

Люди, которые пишут begin..end вокруг одного оператора   Найти похожие ветки 

 
Дмитрий С ©   (2012-12-13 04:26) [40]


> Плюс мильён. Среда сама подставляет, как минимум end; :)

Среда, стерва такая, перестает дописывать их, если есть вложенная процедура или замыкание :(

По теме. Осознанно пишу begin end для одного оператора в условиях с многооператорным ELSE-ом, например:
if conditional then
begin
 operator1
end
else
begin
 operator2;
 operator3;
end;


ЗЫ. Посмотреть бы на повседневный код автора:)


 
Anatoly Podgoretsky ©   (2012-12-13 07:48) [41]

> Игорь Шевченко  (12.12.2012 22:37:00)  [0]

И увеличивабт энтропию вселенной


 
Eraser ©   (2012-12-13 07:58) [42]


> antonn ©   (12.12.12 23:10) [15]


> if(visible) then begin
>    halt;
> end;

вот это куда большее зло, чем сабж )


 
Студент   (2012-12-13 08:28) [43]

function ZLO(a,b,c,d:integer):integer;
begin
  return ifthen(a<b, b+c, c+d);
end;


 
Игорь Шевченко ©   (2012-12-13 09:49) [44]

Anatoly Podgoretsky ©   (13.12.12 07:48) [41]

Не то слово. Тепловая смерть не за горами.

Дмитрий С ©   (13.12.12 04:26) [40]


> ЗЫ. Посмотреть бы на повседневный код автора:)


Открой исходники VCL - мой код по стилю примерно такой же.


 
RWolf ©   (2012-12-13 09:52) [45]


> Германн ©   (13.12.12 01:58) [39]
> > Да, и еще враги те, кто избыточные точки с запятой после
> > end ставят. :)А вот это я расцениваю либо как неудачную
> шутку разработчиков паскаля, либо как удачную шутку вышеуказанных.
>  :)

всё логично же: точка с запятой — разделитель операторов, begin/end — составной оператор.


 
Андреевич   (2012-12-13 10:26) [46]


> Eraser ©   (13.12.12 07:58) [42]
>
> > antonn ©   (12.12.12 23:10) [15]
>
>
> > if(visible) then begin
> >    halt;
> > end;
>
> вот это куда большее зло, чем сабж )

так сабж же об этом


 
O'ShinW ©   (2012-12-13 11:03) [47]

кстати,
вот еще круче :)
...
begin
end;
..

http://delphimaster.net/view/2-1353997983/


 
Студент   (2012-12-13 11:17) [48]

TZlo=class
  protected:
      procedure PowZlo; virtual;
end;

implementation

procedure TZlo.PowZlo;
begin
end;


 
Inovet ©   (2012-12-13 11:28) [49]

> [47] O"ShinW ©   (13.12.12 11:03)
> вот еще круче :)

Автор не виноват. Это такое дали скопипастить.


 
Правнук Винни-пуха   (2012-12-13 11:36) [50]

Когда начинал работать на Pascal, все устраивало.  А после Си-подобного синтаксиса как только не располагал begin/end, везде кажутся громоздкими и нечитаемыми:

if () then
begin
...
end
else
begin
...
end;


if ()
then
begin
...
end
else
begin
...
end;


Ну и последние 2 примера: то, что в C++ хорошо, в Object Pacal смерть :)

if () then begin
...
end
else begin
...
end;


if () then begin
... end
else begin
... end;


 
Владислав ©   (2012-12-13 11:39) [51]


> Игорь Шевченко ©   (12.12.12 22:37)  
> Являются тормозом прогресса и врагами нации :)


Я не спорю с begin...end. C "врагами нации" тоже все ясно. :)
Но почему "тормоз прогресса"? :) Можно подробнее?


> Дмитрий С ©   (13.12.12 04:26) [40]
>  ...
> ЗЫ. Посмотреть бы на повседневный код автора:)


Довелось видеть. Аж противно, что придраться не к чему. :о)


 
Юрий Зотов ©   (2012-12-13 11:50) [52]

А если вот так:

if a > b then
begin
 a := b;
 b := 0
end
else
 begin
   b := a;
   a := 0
 end;


 
Polevi ©   (2012-12-13 12:25) [53]

В самом распространенном ЯП России по другому вообще никак

Если Истина Тогда
 Сообщить("Истина");
КонецЕсли;


 
icWasya ©   (2012-12-13 12:29) [54]

>а есть ещё те, кто ";" перед end ставят; :)))
Вот чего в паскале точно нельзя, так это ставить ";" перед else :(((


 
O'ShinW ©   (2012-12-13 12:31) [55]

так:

if a > b then
begin
a := b;
b := 0
end else
begin
 b := a;
 a := 0
end;


 
Дмитрий С ©   (2012-12-13 12:31) [56]


> Довелось видеть. Аж противно, что придраться не к чему.
> :о)

Придраться не к чему? Так не бывает :)


 
Пит   (2012-12-13 12:34) [57]

по сабжу - не согласен. То есть, можно конечно и не ставить, но ничего плохого в коде:

if () then
begin
  opaGangamStyle;
end;


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

if () then
begin_ //  <--  курсор здесь


далее жмем enter и современная среда или эксперт вставляет автоматом end;

Только потом идет осознание, что блок состоит всего из одного оператора и зачем париться и удалять begin..end? К тому же не так уж маловероятно, что код будет дополнен.

Плюс это позволяет избежать забавных ошибок, трудно воспринимаемых, особенно при правильном форматировании (как раз недавно нашел такую в чужом коде):

if (Condition) then
  Obj := GetMyObj;
  SetContext(Obj);
  WriteLog(Obj.Id);
...


И ты знаешь, что Condition ТОЧНО ВЫПОЛНЯЕТСЯ, а вот в логах ничего не видишь. Долго думаешь - почему так?

Особенно, что некоторые любят писать:

if (Condition) then begin
  Obj := GetMyObj;
  SetContext(Obj);
  WriteLog(Obj.Id);
...


и в VCL это также встречается.

Есть посложнее варианты, типа такого:

if (Condition1) then
  Obj := GetMyObj;
  if (Condition2) then
     SetContext(Obj);
...


по запарке начинающий программист может просто с ума сойти на отладке. Он вроде точно видит, что Condition2 верное условие, но исполнение даже при трассировке после второй строчке уходит из программы.

Так что на мой взгляд привычка всегда ставить begin..end не такая уж и плохая. Не призываю всех так делать, но и ругать тут не за что.


 
Пит   (2012-12-13 12:43) [58]


> В самом распространенном ЯП России по другому вообще никак
>
> Если Истина Тогда
>  Сообщить("Истина");
> КонецЕсли;


в PL/SQL тоже.


 
Пит   (2012-12-13 12:46) [59]


> И ты знаешь, что Condition ТОЧНО ВЫПОЛНЯЕТСЯ, а вот в логах
> ничего не видишь

Надо читать так:

И ты знаешь, что Condition ТОЧНО НЕ ВЫПОЛНЯЕТСЯ, а вот в логах все равно видишь запись )


 
Игорь Шевченко ©   (2012-12-13 12:59) [60]

Владислав ©   (13.12.12 11:39) [51]


> Но почему "тормоз прогресса"? :) Можно подробнее?


Потому что тормозят прогресс, что тут неясного ?


> ЗЫ. Посмотреть бы на повседневный код автора:)


unit  main; interface  procedure Test;  implementation uses  SysUtils,  Contnrs,
Classes,  Mail2000; type  EMail2000GatewayError=  class(Exception  )end;   const
MAIL_BULKSUFFIX="/BULK"; MAIL_BODYFILENAME="letter.body"; type EMailGatewayError
=class(Exception);TEmailAttachment=class private FFileName:string;FSize:Integer;
FData: Pointer; public destructor Destroy;
override;property Data:Pointer read FData write FData;property FileName:  string
read FFileName write FFileName;property Size:Integer read FSize write FSize;end;
TEmailAttachments=class(TObjectList   )private   function GetItems(I:  Integer):
TEmailAttachment   ; public  property Items[I  :Integer]  :TEmailAttachment read
GetItems;   default;end;  TLetterState=(  lsReceived,   lsProcessed,lsVerifying,
lsVerified,    lsErrorVerify,  lsQueuingTask,  lsNotQueuedTask,   lsQueuedTask);
TEmailLetter   =class private FFromAddress:string  ;FBulkMode :Boolean;FSubject:
string  ;FBody :string  ;FAttachments  :TEmailAttachments   ;FTaskCode  :string;
FState:TLetterState;FUIDL:string;function GetNamebyUIDL:string;public constructor
Create;destructor Destroy;override;property FromAddress:string read FFromAddress
write FFromAddress;property Subject:string read FSubject write FSubject;property BulkMode: Boolean read FBulkMode
write FBulkMode; property Body: string read FBody write FBody; property
Attachments: TEmailAttachments read FAttachments; property TaskCode: string read
FTaskCode write FTaskCode; property State: TLetterState read FState write
FState; property UIDL: string read FUIDL write FUIDL; property NameByUIDL:
string read GetNamebyUIDL; end; procedure Test; const MailHost: string =
"mail.foo.bar"; MailBox: string = "foo"; MailBoxPassword: string = "foobar";
MailPort: Integer = 110; var FPOP: TPOP2000; FMM: TMailMessage2000;
procedure RetrieveMessage(N:Integer)  ;var Letter:TEmailLetter;I,AttachCount,Sz:
Integer;Attachment :TEmailAttachment;FAttach  :TMailPart;Buffer:Pointer;begin if
not FPOP.RetrieveMessage(N)then begin writeln(Format("Can""t retrieve message %d"
,[N]));Exit;end;writeln(Format("Received message from "%s" with subject "%s"",
[FMM.FromAddress, FMM   .Subject]))   ;Letter:=nil  ;try FMM .FindParts;Letter:=
TEmailLetter.Create;Letter  .FromAddress:=string(FMM.FromAddress);Letter.Subject
:=string(FMM.Subject);Letter.Body:=FMM.TextPlain.Text;Letter.UIDL:=FPOP.GetUIDL(
N) ;writeln(Format("Message from "%s" with subject "%s" has UIDL "%s"", [Letter.
FromAddress, Letter.Subject, Letter.UIDL]))  ;AttachCount:=FMM.AttachList.Count;
writeln(Format("Message from %s has %d attachments",[FMM.FromAddress,AttachCount]));
for I:=0 to AttachCount-1 do begin FAttach:=FMM.AttachList[I];try FAttach.Decode;
Sz:=FAttach.Decoded.Size;Attachment:=TEmailAttachment.Create;Attachment.FileName
:=string(FAttach.FileName)  ;writeln(Format("attachment %d has file name "%s"",[
Succ(I),Attachment.FileName])) ;Attachment.Size := Sz;if Sz>0 then begin GetMem(
Buffer,Sz);FAttach.Decoded.Seek(0,soFromBeginning);FAttach.Decoded.Read(Buffer^,
Sz);Attachment.Data:=Buffer;end;Letter.Attachments.Add(Attachment);except on E :
Exception do writeln(Format("Failed to decode attachment %d (%s)",[I,E.Message]));
end;     end;    except on E       :Exception do begin     writeln    (Format  (
"Failed to retrieve message %d (%s)", [N, E.Message]));FreeAndNil(Letter ); end;
end;end;


Где-то так


 
xayam ©   (2012-12-13 13:02) [61]


> что тут неясного ?

не ясно, куда движется прогресс?


 
DVM ©   (2012-12-13 13:04) [62]


> Игорь Шевченко ©   (13.12.12 12:59) [60]

Декодирую :)


procedure Test;

implementation

uses SysUtils, Contnrs,
 Classes, Mail2000;

type
 EMail2000GatewayError = class(Exception)
 end;

const
 MAIL_BULKSUFFIX = "/BULK";
 MAIL_BODYFILENAME = "letter.body";

type
 EMailGatewayError = class(Exception);

 TEmailAttachment = class
 private
   FFileName: string;
   FSize: Integer;
   FData: Pointer;
 public
   destructor Destroy; override;
   property Data: Pointer read FData write FData;
   property FileName: string read FFileName write FFileName;
   property Size: Integer read FSize write FSize;
 end;

 TEmailAttachments = class(TObjectList)
 private
   function GetItems(I: Integer): TEmailAttachment;
 public
   property Items[I: Integer]: TEmailAttachment read GetItems; default;
 end;

 TLetterState = (lsReceived, lsProcessed, lsVerifying, lsVerified,
   lsErrorVerify, lsQueuingTask, lsNotQueuedTask, lsQueuedTask);

 TEmailLetter = class
 private
   FFromAddress: string;
   FBulkMode: Boolean;
   FSubject: string;
   FBody: string;
   FAttachments: TEmailAttachments;
   FTaskCode: string;
   FState: TLetterState;
   FUIDL: string;
   function GetNamebyUIDL: string;
 public
   constructor Create;
   destructor Destroy; override;
   property FromAddress: string read FFromAddress write FFromAddress;
   property Subject: string read FSubject write FSubject;
   property BulkMode: Boolean read FBulkMode write FBulkMode;
   property Body: string read FBody write FBody;
   property Attachments: TEmailAttachments read FAttachments;
   property TaskCode: string read FTaskCode write FTaskCode;
   property State: TLetterState read FState write FState;
   property UIDL: string read FUIDL write FUIDL;
   property NameByUIDL: string read GetNamebyUIDL;
 end;

procedure Test;
const
 MailHost: string = "mail.foo.bar";
 MailBox: string = "foo";
 MailBoxPassword: string = "foobar";
 MailPort: Integer = 110;
var
 FPOP: TPOP2000;
 FMM: TMailMessage2000;
 procedure RetrieveMessage(N: Integer);
 var
   Letter: TEmailLetter;
   I, AttachCount, Sz: Integer;
   Attachment: TEmailAttachment;
   FAttach: TMailPart;
   Buffer: Pointer;
 begin
   if not FPOP.RetrieveMessage(N) then
   begin
     writeln(Format("Can""t retrieve message %d", [N]));
     Exit;
   end;
   writeln(Format("Received message from "%s" with subject "%s"",
     [FMM.FromAddress, FMM.Subject]));
   Letter := nil;
   try
     FMM.FindParts;
     Letter := TEmailLetter.Create;
     Letter.FromAddress := string(FMM.FromAddress);
     Letter.Subject := string(FMM.Subject);
     Letter.Body := FMM.TextPlain.Text;
     Letter.UIDL := FPOP.GetUIDL(N);
     writeln(Format("Message from "%s" with subject "%s" has UIDL "%s"",
       [Letter.FromAddress, Letter.Subject, Letter.UIDL]));
     AttachCount := FMM.AttachList.Count;
     writeln(Format("Message from %s has %d attachments",
       [FMM.FromAddress, AttachCount]));
     for I := 0 to AttachCount - 1 do
     begin
       FAttach := FMM.AttachList[I];
       try
         FAttach.Decode;
         Sz := FAttach.Decoded.Size;
         Attachment := TEmailAttachment.Create;
         Attachment.FileName := string(FAttach.FileName);
         writeln(Format("attachment %d has file name "%s"",
           [Succ(I), Attachment.FileName]));
         Attachment.Size := Sz;
         if Sz > 0 then
         begin
           GetMem(Buffer, Sz);
           FAttach.Decoded.Seek(0, soFromBeginning);
           FAttach.Decoded.Read(Buffer^, Sz);
           Attachment.Data := Buffer;
         end;
         Letter.Attachments.Add(Attachment);
       except
         on E: Exception do
           writeln(Format("Failed to decode attachment %d (%s)",
             [I, E.Message]));
       end;
     end;
   except
     on E: Exception do
     begin
       writeln(Format("Failed to retrieve message %d (%s)", [N, E.Message]));
       FreeAndNil(Letter);
     end;
   end;
 end;


 
O'ShinW ©   (2012-12-13 13:08) [63]

if cond1 then
if cond2 then
  Do1 else
  if cond3  then
    Do2 else
    Do3;
в таком коде, 100% наставлю бегин-эндов (и, возможно, инвертирую условия)

if cond1 then
begin
if not(cond2) then
begin
  if cond3  then
    Do2 else
    Do3;    
end else
  Do1;
end;
кому как, а мне - понятнее..

Все-все, уже иду-иду :)


 
брат Птибурдукова   (2012-12-13 13:19) [64]


> Игорь Шевченко ©   (13.12.12 12:59) [60]
Чё так много пробелов? Нужно рационально расходовать место на жёстком диске.


 
Игорь Шевченко ©   (2012-12-13 13:27) [65]

DVM ©   (13.12.12 13:04) [62]

Много времени заняло ? :) DelForExp несколько не так декодировал


 
Дмитрий С ©   (2012-12-13 13:31) [66]

Ctrl+D, Delphi XE:

unit main;

interface

procedure Test;

implementation

uses SysUtils, Contnrs,
 Classes, Mail2000;

type
 EMail2000GatewayError = class(Exception)
 end;

const
 MAIL_BULKSUFFIX = "/BULK";
 MAIL_BODYFILENAME = "letter.body";

type
 EMailGatewayError = class(Exception);

 TEmailAttachment = class
 private
   FFileName: string;
   FSize: Integer;
   FData: Pointer;
 public
   destructor Destroy; override;
   property Data: Pointer read FData write FData;
   property FileName: string read FFileName write FFileName;
   property Size: Integer read FSize write FSize;
 end;

 TEmailAttachments = class(TObjectList)
 private
   function GetItems(I: Integer): TEmailAttachment;
 public
   property Items[I: Integer]: TEmailAttachment read GetItems; default;
 end;

 TLetterState = (lsReceived, lsProcessed, lsVerifying, lsVerified,
   lsErrorVerify, lsQueuingTask, lsNotQueuedTask, lsQueuedTask);

 TEmailLetter = class
 private
   FFromAddress: string;
   FBulkMode: Boolean;
   FSubject: string;
   FBody: string;
   FAttachments: TEmailAttachments;
   FTaskCode: string;
   FState: TLetterState;
   FUIDL: string;
   function GetNamebyUIDL: string;
 public
   constructor Create;
   destructor Destroy; override;
   property FromAddress: string read FFromAddress write FFromAddress;
   property Subject: string read FSubject write FSubject;
   property BulkMode: Boolean read FBulkMode write FBulkMode;
   property Body: string read FBody write FBody;
   property Attachments: TEmailAttachments read FAttachments;
   property TaskCode: string read FTaskCode write FTaskCode;
   property State: TLetterState read FState write FState;
   property UIDL: string read FUIDL write FUIDL;
   property NameByUIDL: string read GetNamebyUIDL;
 end;

procedure Test;
const
 MailHost: string = "mail.foo.bar";
 MailBox: string = "foo";
 MailBoxPassword: string = "foobar";
 MailPort: Integer = 110;
var
 FPOP: TPOP2000;
 FMM: TMailMessage2000;
 procedure RetrieveMessage(N: Integer);
 var
   Letter: TEmailLetter;
   I, AttachCount, Sz: Integer;
   Attachment: TEmailAttachment;
   FAttach: TMailPart;
   Buffer: Pointer;
 begin
   if not FPOP.RetrieveMessage(N) then
   begin
     writeln(Format("Can""t retrieve message %d", [N]));
     Exit;
   end;
   writeln(Format("Received message from "%s" with subject "%s"",
     [FMM.FromAddress, FMM.Subject]));
   Letter := nil;
   try
     FMM.FindParts;
     Letter := TEmailLetter.Create;
     Letter.FromAddress := string(FMM.FromAddress);
     Letter.Subject := string(FMM.Subject);
     Letter.Body := FMM.TextPlain.Text;
     Letter.UIDL := FPOP.GetUIDL(N);
     writeln(Format("Message from "%s" with subject "%s" has UIDL "%s"",
       [Letter.FromAddress, Letter.Subject, Letter.UIDL]));
     AttachCount := FMM.AttachList.Count;
     writeln(Format("Message from %s has %d attachments",
       [FMM.FromAddress, AttachCount]));
     for I := 0 to AttachCount - 1 do
     begin
       FAttach := FMM.AttachList[I];
       try
         FAttach.Decode;
         Sz := FAttach.Decoded.Size;
         Attachment := TEmailAttachment.Create;
         Attachment.FileName := string(FAttach.FileName);
         writeln(Format("attachment %d has file name "%s"",
           [Succ(I), Attachment.FileName]));
         Attachment.Size := Sz;
         if Sz > 0 then
         begin
           GetMem(Buffer, Sz);
           FAttach.Decoded.Seek(0, soFromBeginning);
           FAttach.Decoded.Read(Buffer^, Sz);
           Attachment.Data := Buffer;
         end;
         Letter.Attachments.Add(Attachment);
       except
         on E: Exception do
           writeln(Format("Failed to decode attachment %d (%s)",
             [I, E.Message]));
       end;
     end;
   except
     on E: Exception do
     begin
       writeln(Format("Failed to retrieve message %d (%s)", [N, E.Message]));
       FreeAndNil(Letter);
     end;
   end;
 end;


 
DVM ©   (2012-12-13 15:45) [67]


> Игорь Шевченко ©   (13.12.12 13:27) [65]
> DVM ©   (13.12.12 13:04) [62]
>
> Много времени заняло ? :)

это делфи сама


 
Jeer ©   (2012-12-13 16:31) [68]

А мне продолжает нравиться ABC-Pascal :)

***
type
 Person = class
 private
   class arr: array of Person; // Классовое поле. Связано не с переменной класса, а с классом.
   name: string;
   age: integer;
 public
   class constructor; // Конструктор класса. Вызывается до создания первого объекта класса и до вызова любого классового метода
   begin
     writeln("  Вызван классовый конструктор");
     SetLength(arr,3);
     arr[0] := new Person("Иванов",20);
     arr[1] := new Person("Петрова",19);
     arr[2] := new Person("Попов",35);
   end;
   constructor (n: string; a: integer);
   begin
     name := n;
     age := a;
   end;
   function ToString: string; override;
   begin
     Result := Format("Имя: {0}   Возраст: {1}",name,age);      
   end;
   class function RandomPerson: Person; // Классовый метод. Может обращаться только к классовым полям
   begin
     Result := arr[Random(3)];
   end;
 end;
 
begin
 writeln("Случайные персоны");
 for var i:=1 to 5 do
   writeln(Person.RandomPerson); // Вызов классового метода
end.


 
Дмитрий С ©   (2012-12-13 16:32) [69]

Тем что код в интерфейсе пишется?


 
Jeer ©   (2012-12-13 16:36) [70]

Это фишка :)
В т.ч., но не только.
Весьма толково "сделан" микс из очевидно востребованных возможностей.
***
uses System.Collections.Generic;

var
 a: array [1..5] of integer := (1,3,5,7,9);
 s: set of integer;
 l: List<integer>;

begin
 write("foreach по обычному массиву: ":35);
 foreach x: integer in a do
   write(x," ");
 writeln;  
 
 s := [2..5,10..14];
 write("foreach по множеству: ":35);
 foreach x: integer in s do
   write(x," ");
 writeln;  
 
 l := new List<integer>;
 l.Add(7); l.Add(2); l.Add(5);
 write("foreach по динамическому массиву: ":35);
 foreach x: integer in l do
   write(x," ");
end.


 
Jeer ©   (2012-12-13 16:39) [71]

// Внутриблочные описания переменных
 var s: real := 1.0;

 // Описание переменной в заголовке цикла (время жизни переменной - до конца тела цикла)
 for j: integer := 1 to 10 do
   s += j; // Операция += для чисел


 
vuk ©   (2012-12-13 17:34) [72]


> Jeer ©   (13.12.12 16:31) [68]
> А мне продолжает нравиться ABC-Pascal :)

А мне продолжает хотецца паубивать всех изобретателей языков с таким описанием классов. :)


 
O'ShinW ©   (2012-12-13 17:43) [73]


>  s += j

застрелится, блин. Они уже и в паскале..


 
O'ShinW ©   (2012-12-13 17:49) [74]

ь :)

чем это s += j лучше, чем  s = s + j - непонятно. Вообще. И никогда не будет, хоть убейте.


 
Игорь Шевченко ©   (2012-12-13 17:52) [75]

O"ShinW ©   (13.12.12 17:49) [74]


> И никогда не будет, хоть убейте.


Можно начинать ?


 
Пользователь Интернета   (2012-12-13 17:57) [76]

Люди, которые пишут цифры ручкой на купюрах, еще большие враги народа и вредители!


 
KilkennyCat ©   (2012-12-13 18:29) [77]


> Пользователь Интернета   (13.12.12 17:57) [76]

а буквы и знаки препинания?


 
Дмитрий С ©   (2012-12-13 18:35) [78]


> Jeer ©

Прикольненько:)

Циклы без описания переменных где-то там, да еще и по массивам (и спискам наверное тоже), круто:)


 
O'ShinW ©   (2012-12-13 19:32) [79]


> Можно начинать ?

Что-то у меня такое подозрение, что Вы упорно хотите заняться со мной ненавистью :)


 
Котик Б   (2012-12-13 20:31) [80]

А мне вообще ни
begin ... end
ни
{ ... }
не нравятся.

Повбьівав бьі...

Каждьій фрагмент кода должен иметь явное начало и явное окончание:
IF ... ENDIF
DO ... ENDDO
LOOP ... ENDLOOP
SELECT ... ENDSELECT



Страницы: 1 2 3 4 5 6 вся ветка

Форум: "Прочее";
Текущий архив: 2013.04.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.65 MB
Время: 0.015 c
8-1231170249
Б
2009-01-05 18:44
2013.04.14
Как загрузить GIF в Image?


2-1349379021
qwerty123
2012-10-04 23:30
2013.04.14
TreeView и системные иконки


15-1355464494
brother
2012-12-14 09:54
2013.04.14
оптимальна скорость доступа к массиву


4-1264548546
hattak
2010-01-27 02:29
2013.04.14
Скриншот свёрнутого окна


15-1355922292
картман
2012-12-19 17:04
2013.04.14
хочу 32 часа





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский