<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS: If Else OR Case select]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8167&amp;type=atom" />
	<updated>2013-03-22T12:15:05Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=8167</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS: If Else OR Case select]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=70644#p70644" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Lucky пишет:</cite><blockquote><p>а вопрос-то стоит про Case select, а рассматривается всё, кроме сути вопроса</p></blockquote></div><p>Вы отчасти правы. Но важное не только ответить на вопрос, но дать правильное направление для дальнейших размышлений. </p><p><strong>inock</strong>, отвечая на Ваш вопрос<br /></p><div class="quotebox"><blockquote><p>Вот эту конструкцию можно сделать через оператор Case select?</p></blockquote></div><p>скажу: <span class="bbu">можно, но так делать не надо</span>. </p><p>Создайте список (через Dictionary или Array) и работайте с ним, циклически перебирая элементы списка. Это сократит количество кода, улучшит его понимание и дальнейшее сопровождение. </p><p>Поэтому правильным будет полный отказ от длинного списка проверок (не важно - If Else или Case) в пользу списка - в Вашем случае один простой, одномерный массив.</p>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2013-03-22T12:15:05Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=70644#p70644</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: If Else OR Case select]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=70643#p70643" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Lucky пишет:</cite><blockquote><p>.. для осуществления через <strong>Case select</strong> мешает необходимость функции <strong>InStr</strong>.</p></blockquote></div><p>Да я бы не сказал, что особо мешает. Но как то криво, на мой взгляд.</p><div class="codebox"><pre><code>
Option Explicit

Dim id, strTarif
strTarif = &quot;Брянск - КОМАНДА07 с 61 сек (гор/фед) (КОРП) (SS)&quot;
Select Case True
Case InStr(1,strTarif,&quot;Брянск - Корпоративный мобайл 07 поминутно (гор/фед) (КОРП) (SS)&quot;,1) &gt; 0
    id = 4
Case InStr(1,strTarif,&quot;Брянск - Телематика с 1 сек (фед) (КОРП) (SS)&quot;,1) &gt; 0
    id = 5
Case InStr(1,strTarif,&quot;Брянск - Корпоративный мобайл 07 с 61 сек (гор/фед) (КОРП) (SS)&quot;,1) &gt; 0
    id = 6
Case InStr(1,strTarif,&quot;Брянск - Телематика (КОРП) (SS)&quot;,1) &gt; 0
    id = 7
Case InStr(1,strTarif,&quot;Брянск - МТС Коннект-4 (ПРП) (SCP)&quot;,1) &gt; 0
    id = 8
Case InStr(1,strTarif,&quot;Брянск - Бизнес Эксперт (КОРП) (SS)&quot;,1) &gt; 0
    id = 9
Case InStr(1,strTarif,&quot;Брянск - КОМАНДА07 с 61 сек (гор/фед) (КОРП) (SS)&quot;,1) &gt; 0
    id = 10
Case InStr(1,strTarif,&quot;Брянск - Бизнес Коннект (КОРП) (SS)&quot;,1) &gt; 0
    id = 11
Case InStr(1,strTarif,&quot;Брянск - Эксклюзив (гор/фед) (КК) (SS)&quot;,1) &gt; 0
    id = 12
Case InStr(1,strTarif,&quot;Брянск - Телематика - 2012 (КОРП) (SS)&quot;,1) &gt; 0
    id = 13
End Select
MsgBox id
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2013-03-22T11:40:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=70643#p70643</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: If Else OR Case select]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=70641#p70641" />
			<content type="html"><![CDATA[<p>Господа, а вопрос-то стоит про <strong>Case select</strong>, а рассматривается всё, кроме сути вопроса. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Думаю ответом будет удобней оставить оператор <strong>If Else</strong>, т.к. для осуществления через <strong>Case select</strong> мешает необходимость функции <strong>InStr</strong>.</p>]]></content>
			<author>
				<name><![CDATA[Lucky]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25698</uri>
			</author>
			<updated>2013-03-22T11:22:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=70641#p70641</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: If Else OR Case select]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=70639#p70639" />
			<content type="html"><![CDATA[<p>Согласен. Создание Dictionary мне тоже не нравится. Но если решать этот момент с массивами, то нужно либо 2 массива, либо двухмерный массив, либо одномерный, элементами которого являются массивы из двух элементов и т.п. ) Ну тоже не особо красиво.</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2013-03-22T10:46:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=70639#p70639</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: If Else OR Case select]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=70638#p70638" />
			<content type="html"><![CDATA[<p>Зачем создавать новый объект?! Лучше тогда уж через массив идти, наверное.</p>]]></content>
			<author>
				<name><![CDATA[sen52]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=21937</uri>
			</author>
			<updated>2013-03-22T09:43:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=70638#p70638</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: If Else OR Case select]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=70634#p70634" />
			<content type="html"><![CDATA[<p>Как вариант, наверное так можно. По моему скромному мнению <strong>Case</strong> особо ситуацию не изменит.<br /></p><div class="codebox"><pre><code>
Dim strTarif, id, key
Dim dict: Set dict = CreateObject(&quot;Scripting.Dictionary&quot;)
strTarif = &quot;Брянск - Бизнес Коннект (КОРП) (SS)&quot;
dict(&quot;Брянск - Корпоративный мобайл 07 поминутно (гор/фед) (КОРП) (SS)&quot;) = 4
dict(&quot;Брянск - Телематика с 1 сек (фед) (КОРП) (SS)&quot;) = 5
dict(&quot;Брянск - Корпоративный мобайл 07 с 61 сек (гор/фед) (КОРП) (SS)&quot;) = 6
dict(&quot;Брянск - Телематика (КОРП) (SS)&quot;) = 7
dict(&quot;Брянск - МТС Коннект-4 (ПРП) (SCP)&quot;) = 8
dict(&quot;Брянск - Бизнес Эксперт (КОРП) (SS)&quot;) = 9
dict(&quot;Брянск - КОМАНДА07 с 61 сек (гор/фед) (КОРП) (SS)&quot;) = 10
dict(&quot;Брянск - Бизнес Коннект (КОРП) (SS)&quot;) = 11
dict(&quot;Брянск - Эксклюзив (гор/фед) (КК) (SS)&quot;) = 12
dict(&quot;Брянск - Телематика - 2012 (КОРП) (SS)&quot;) = 13
For Each key in dict.Keys
    if InStr(1,strTarif,key,1) &gt; 0 Then
        id = dict(key)
        Exit For
    End if
Next

MsgBox id
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2013-03-22T08:21:54Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=70634#p70634</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: If Else OR Case select]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=70633#p70633" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Xameleon пишет:</cite><blockquote><p><strong>strTarif</strong> содержит варианты этих подстрок c дополнительным текстом?</p></blockquote></div><p>Да</p>]]></content>
			<author>
				<name><![CDATA[inock]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25049</uri>
			</author>
			<updated>2013-03-22T08:11:12Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=70633#p70633</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: If Else OR Case select]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=70632#p70632" />
			<content type="html"><![CDATA[<p>А в чём причина использования <strong>InStr</strong> ? <strong>strTarif</strong> содержит варианты этих подстрок c дополнительным текстом ? Что то типа &quot;<strong>AAAAA</strong> Брянск - Корпоративный мобайл 07 поминутно (гор/фед) (КОРП) (SS) <strong>BBBB</strong>&quot; ?</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2013-03-22T08:05:36Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=70632#p70632</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBS: If Else OR Case select]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=70629#p70629" />
			<content type="html"><![CDATA[<p>Господа, что-то никак не соображу. Вот эту конструкцию можно сделать через оператор <strong>Case select</strong>? Если да, то как? И есть ли смысл в такой переделке?</p><div class="codebox"><pre><code>If InStr(strTarif,&quot;Брянск - Корпоративный мобайл 07 поминутно (гор/фед) (КОРП) (SS)&quot;) &lt;&gt; 0 THEN
   id = &quot;4&quot;
ELSEIF InStr(strTarif,&quot;Брянск - Телематика с 1 сек (фед) (КОРП) (SS)&quot;) &lt;&gt; 0 THEN
   id = &quot;5&quot;
ELSEIF InStr(strTarif,&quot;Брянск - Корпоративный мобайл 07 с 61 сек (гор/фед) (КОРП) (SS)&quot;) &lt;&gt; 0 THEN
   id = &quot;6&quot;
ELSEIF InStr(strTarif,&quot;Брянск - Телематика (КОРП) (SS)&quot;) &lt;&gt; 0 THEN
   id = &quot;7&quot;
ELSEIF InStr(strTarif,&quot;Брянск - МТС Коннект-4 (ПРП) (SCP)&quot;) &lt;&gt; 0 THEN
   id = &quot;8&quot;
ELSEIF InStr(strTarif,&quot;Брянск - Бизнес Эксперт (КОРП) (SS)&quot;) &lt;&gt; 0 THEN
   id = &quot;9&quot;
ELSEIF InStr(strTarif,&quot;Брянск - КОМАНДА07 с 61 сек (гор/фед) (КОРП) (SS)&quot;) &lt;&gt; 0 THEN
   id = &quot;10&quot;
ELSEIF InStr(strTarif,&quot;Брянск - Бизнес Коннект (КОРП) (SS)&quot;) &lt;&gt; 0 THEN
   id = &quot;11&quot;
ELSEIF InStr(strTarif,&quot;Брянск - Эксклюзив (гор/фед) (КК) (SS)&quot;) &lt;&gt; 0 THEN
   id = &quot;12&quot;
ELSEIF InStr(strTarif,&quot;Брянск - Телематика - 2012 (КОРП) (SS)&quot;) &lt;&gt; 0 THEN
   id = &quot;13&quot;
End If</code></pre></div>]]></content>
			<author>
				<name><![CDATA[inock]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25049</uri>
			</author>
			<updated>2013-03-22T06:28:50Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=70629#p70629</id>
		</entry>
</feed>
