-
+150.9
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
//$arr - array with arbitrary keys
end($arr);
do {
if( <some condition> ) {
<something of no importance>
unset($arr[key($arr)]);
}
else {
<something of no importance>
}
} while( prev($arr) !== false );
Предполагалось, что на входе будет непустой массив. Потом он будет пролистан с конца (это необходимо) и из него по некоторому условию исключаются элементы. При этом после первого исключения итератор оказывается вне массива и prev() возвращает false (в самом массиве false не размещён заведомо).
interested,
25 Августа 2009
-
+47.9
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
IsSimpleAssign = ( !isIfWhileForReturn&&
( _currString->ecoString )->IsAtOncePresent( equalsSign )&&
( _currString->ecoString )->IsAtOncePresent( star ) &&
( _currString->ecoString )->IsAtOncePresent( amper ) &&
( ( ( _currString->ecoString )->GetCharPos( amper ) <
( _currString->ecoString )->GetCharPos( star ) ) ||
( ( _currString->ecoString )->GetCharPos( amper ) >
( _currString->ecoString )->GetCharPos( star ) ) ) &&
( ( ( _currString->ecoString )->GetCharPos( equalsSign ) <
( _currString->ecoString )->GetCharPos( star ) ) &&
( ( _currString->ecoString )->GetCharPos( amper ) <
( _currString->ecoString )->GetCharPos( equalsSign ) )
||
( ( _currString->ecoString )->GetCharPos( equalsSign ) >
( _currString->ecoString )->GetCharPos( star ) ) &&
( ( _currString->ecoString )->GetCharPos( amper ) >
( _currString->ecoString )->GetCharPos( equalsSign ) ) )
);
где-то в недрах рукописного парсера
gilya,
25 Августа 2009
-
+132.8
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------
private void AddDesigner()
{
Lazy<HostSurfaceFactory, IDesignerMetadataView> exportSurfaceFactory = fileNewDialog.GetHostFactory();
HostControl hc = new HostControl();
if (designerCounts.ContainsKey(exportSurfaceFactory.Metadata.ItemType))
designerCounts[exportSurfaceFactory.Metadata.ItemType]++;
else
designerCounts.Add(exportSurfaceFactory.Metadata.ItemType, 1);
string siteName = exportSurfaceFactory.Metadata.ItemType + designerCounts[exportSurfaceFactory.Metadata.ItemType].ToString();
HostSurface hostSurface = exportSurfaceFactory.Value.CreateNew(siteName);
hc.InitializeHost(hostSurface);
string fileName = siteName + "." + exportSurfaceFactory.Metadata.FileExtension;
TabPage tabpage = new TabPage(fileName + " - Design");
tabpage.Tag = exportSurfaceFactory.Metadata.Language;
hc.Parent = tabpage;
hc.Dock = DockStyle.Fill;
this.tabControl1.TabPages.Add(tabpage);
this.tabControl1.SelectedIndex = this.tabControl1.TabPages.Count - 1;
this.outputWindow.Writeline("Opened new host.");
this.toolbox.DesignerHost = hostSurface.DesignerHost;
this.solutionExplorer.AddFileNode(fileName);
SetupMenus(hostSurface);
}
Пример из MEF. Написан неким Dinesh Chandnani.
Gru,
25 Августа 2009
-
−118.3
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
if ( $in{s} )
{
# максимальная вложенность =3 - сформируем строку для чекбокса по-простому
my %ha = db_select_row [ 'id', 'title', 'parent_id' ], "catalog_section", "id=$in{s} AND `object_id`=1";
if (%ha) ¦
{ ¦
$selected_only[ $ha{parent_id} ] = 'selected';
} ¦
¦
my %parent = db_select_row [ 'title', 'parent_id' ], "catalog_section", "id=$ha{parent_id} AND `object_id`=1";
my %parent2 = db_select_row [ 'title', 'parent_id' ], "catalog_section", "id=$parent{parent_id} AND `object_id`=1";
my $only_title = $ha{title};
$only_title = "$parent{title} — $only_title" if %parent;
$only_title = "$parent2{title} — $only_title" if %parent2;
$only_this_cat_string = "";
if ( %parent || %parent2 )
{
#%ha
$only_this_category_text = qq~
<span>
<input type="checkbox" name="only_this_cat" id="only_this_cat" $checked_only onchange="checkSelect();">
<label for="only_this_cat">Искать только в разделе «$only_title»</label>
</span>~;
}
}
по-простому
nolka4,
25 Августа 2009
-
+155.8
- 1
- 2
- 3
- 4
- 5
- 6
function ValidatorEnable(val, enable)
{
val.enabled = (enable != false);
ValidatorValidate(val);
ValidatorUpdateIsValid();
}
Обратите внимание на третью строку!
(Сначала кажется, что она ничего не делает, но на самом деле она переводит тип в boolean), но обычно пишут все-таки
val.enabled = !!enable
Trams,
25 Августа 2009
-
+160
- 1
foreach($query->result_array() as $row) $res[] = $row;
P.s на сайте не работает галочка "принять рецензию" в 4 хроме, а в 6 ие(который я включил, чтобы здесь накласть) не видно текстареи, но вроде работает :)
xscript,
24 Августа 2009
-
−130.3
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
Public Overrides Sub OnViewInitialized()
Dim userId As String = _guard.GetCurrentUserId()
BindGroups()
Bind()
DoHackyStuff()
End Sub
Private Function GetUrls() As Dictionary(Of String, String)
Dim dic As New Dictionary(Of String, String)
For Each assembly In AppDomain.CurrentDomain.GetAssemblies()
For Each type In assembly.GetTypes.Where(Function(q) q.FullName.EndsWith("Url"))
Dim url = CType(_container.GetByType(type), IUrl).Page
Dim name = type.FullName.Split(".".ToCharArray)
dic.Add(url, name.Reverse.First + ", " + name.Reverse.Skip(1).First)
Next
Next
Return dic
End Function
Private Sub DoHackyStuff()
Dim siteMap = _container.Get(Of ISiteMapGenerator)().GetSiteMap()
Dim urls = GetUrls()
Dim sb As New StringBuilder
For Each top In siteMap.Nodes
sb.AppendLine(String.Format("<top display-name=""{0}"" id=""{1}"">", top.Name, urls(top.Url)))
For Each group In top.Nodes
sb.AppendLine(String.Format("<group display-name=""{0}"">", group.Name))
For Each item1 In group.Nodes
sb.AppendLine(String.Format("<item display-name=""{0}"" id=""{1}""/>", item1.Name, urls(item1.Url)))
Next
sb.Append("</group>")
Next
sb.Append("</top>")
Next
End Sub
Быстро пытался сгенерить xml-ку по ран-тайм структуре.
Valera,
24 Августа 2009
-
+158
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
for($i=$start; $i<$end; $i++) {
$v=$items[$idx[$i]];
}
$start = 0;
$end = count($items);
if (is_array($idx))
{
}
else
{
unset($idx);
$idx[0] = 0;
}
Хоть и вырвано из контекста, но общая красота от этого не теряется.
stan,
24 Августа 2009
-
+160
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
//Из библиотеки prototype
....
unescapeHTML: function() {
return this.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>');
}
....
Смеяться надо из-за того, что замена & на & идёт первой, таким образом &lt замениться на <, а не на <
Oleg_quadro,
24 Августа 2009
-
+153.1
- 1
- 2
- 3
- 4
- 5
function thaw() {
$this->get_lock();
$vals = $this->that->ac_get_value($this->id, $this->name);
eval(sprintf(";%s",$vals));
}
vals, this, that.. еще не хватает комментов типа // eval something, return nothing
lock видимо отпускать и не надо...
shitcoder,
24 Августа 2009