<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBScript: Подсчет суммы чисел в колонке файла csv]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=7293</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7293&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBScript: Подсчет суммы чисел в колонке файла csv».]]></description>
		<lastBuildDate>Fri, 22 Jun 2012 08:25:09 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBScript: Подсчет суммы чисел в колонке файла csv]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=61100#p61100</link>
			<description><![CDATA[<p>Остальные строчки тоже содержат, но ругается только на последнюю.<br /></p><div class="quotebox"><blockquote><p>83.149.2.103;[21/Jun/2012:21:22:57;+0400];531;4112<br />83.149.2.103;[21/Jun/2012:21:22:58;+0400];528;24350<br />83.149.2.103;[21/Jun/2012:21:22:58;+0400];554;10033<br />83.149.2.103;[21/Jun/2012:21:22:58;+0400];550;825<br />83.149.2.103;[21/Jun/2012:21:22:59;+0400];550;549<br />83.149.2.103;[21/Jun/2012:21:22:59;+0400];553;5128<br />83.149.2.103;[21/Jun/2012:21:22:59;+0400];551;1383<br />83.149.2.103;[21/Jun/2012:21:22:59;+0400];549;1997<br />83.149.2.103;[21/Jun/2012:21:22:59;+0400];555;2509<br />83.149.2.103;[21/Jun/2012:21:22:59;+0400];547;712<br />83.149.2.103;[21/Jun/2012:21:22:59;+0400];551;691<br />83.149.2.103;[21/Jun/2012:21:22:59;+0400];552;37920</p></blockquote></div><p>получается, что если файл содержит число больше 32767, то скрипт выдает эту ошибку <img src="//forum.script-coding.com/img/smilies/hmm.png" width="15" height="15" /><br />integer только до 32767 <img src="//forum.script-coding.com/img/smilies/mad.png" width="15" height="15" /><br />CInt поменял на CLng и все заработало. <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /><br />Спасибо всем за помощь. Очень помогли <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (DIMMon)]]></author>
			<pubDate>Fri, 22 Jun 2012 08:25:09 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=61100#p61100</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Подсчет суммы чисел в колонке файла csv]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=61098#p61098</link>
			<description><![CDATA[<p>dab00, скрипт работает до этой строчки<br /></p><div class="quotebox"><blockquote><p>83.149.2.103;[21/Jun/2012:21:22:59;+0400];552;37920</p></blockquote></div><p>а потом ошибка <br /></p><div class="quotebox"><blockquote><p>logparser2.vbs(29, 17) Microsoft VBScript runtime error: Overflow: &#039;CInt&#039;</p></blockquote></div><p>что в этой строке не так? Слишком большое значение?<br />изменил значения на<br /></p><div class="codebox"><pre><code>
Const ColNumber = 4 &#039;количество колонок (от 0)
arr2 = Array(3,4) &#039;например 3-я и 5-я колонки</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (DIMMon)]]></author>
			<pubDate>Fri, 22 Jun 2012 08:07:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=61098#p61098</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Подсчет суммы чисел в колонке файла csv]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=61093#p61093</link>
			<description><![CDATA[<p><strong>alexii</strong>, не стреляйте в пианиста <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (dab00)]]></author>
			<pubDate>Thu, 21 Jun 2012 23:33:37 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=61093#p61093</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Подсчет суммы чисел в колонке файла csv]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=61091#p61091</link>
			<description><![CDATA[<p><strong>dab00</strong>, «ReDim Preserve» — это тихий ужас. Считайте суммы сразу по ходу чтения и разбора строки.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Thu, 21 Jun 2012 22:59:29 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=61091#p61091</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Подсчет суммы чисел в колонке файла csv]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=61090#p61090</link>
			<description><![CDATA[<p><span style="color: Green"><strong>DIMMon</strong>, избегайте излишнего цитирования. Я поправил Ваш <a href="http://forum.script-coding.com/viewtopic.php?pid=61086#p61086">пост</a>.</span></p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Thu, 21 Jun 2012 22:52:36 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=61090#p61090</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Подсчет суммы чисел в колонке файла csv]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=61089#p61089</link>
			<description><![CDATA[<p>qwe.csv:<br /></p><div class="codebox"><pre><code>текст1;текст2;текст3;текст4;текст5;текст6
10.10.3.131;10;11;484;aa;191
10.10.3.131;10;11;347;aa;503
10.10.3.131;10;11;514;aa;210
10.10.3.131;10;11;510;aa;190
10.10.3.131;10;11;347;aa;503
10.10.3.131;10;11;514;aa;210</code></pre></div><div class="codebox"><pre><code>
Option Explicit
Const CsvFile1 = &quot;qwe.csv&quot; &#039;читаем
Const CsvFile2 = &quot;qwe.txt&quot; &#039;пишем
Const ColNumber = 5 &#039;количество колонок (от 0)
Dim fso, arr, k, m, n, x, y, newFile
Dim arr2 &#039;массив номеров колонок для счета (от 0)
arr2 = Array(3,5) &#039;например 3-я и 5-я колонки

Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot;)

If Not fso.FileExists(CsvFile1) Then
	MsgBox &quot;Файл &quot; &amp; CsvFile1 &amp; &quot; не найден&quot;
	WScript.Quit
End If

arr = ReadCSV(CsvFile1, ColNumber) &#039;читаем

With fso	
	If Not .FileExists(CsvFile2) Then
		Set newFile = .CreateTextFile(CsvFile2)
		newFile.Close	
	End If
	
	Set newFile = .OpenTextFile(CsvFile2,8)
	With newFile 
		For k = 0 To UBound(arr2)		
			m = 0
			For n = 1 To UBound(arr,2) &#039;считаем			
				m = m + CInt((arr(arr2(k),n)))
			Next
			.WriteLine arr(arr2(k),0) &amp; &quot; = &quot; &amp; m &#039;пишем
		Next
		.Close
	End With
End With

Function ReadCSV(filePath, intColNumber)	
	Dim dataArray() 
	Dim splitArray 
	Dim i, j 
	i = 0
	With fso.OpenTextFile(filePath) 		
		Do Until .AtEndOfStream 			
			splitArray = Split(.ReadLine, &quot;;&quot;)			
			ReDim Preserve dataArray(intColNumber, i)		
			For j = 0 To intColNumber
				dataArray(j, i) = splitArray(j)
			Next				
			i = i + 1				
		Loop
		.Close
	End With
	ReadCSV = dataArray
End Function</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (dab00)]]></author>
			<pubDate>Thu, 21 Jun 2012 22:49:39 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=61089#p61089</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Подсчет суммы чисел в колонке файла csv]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=61086#p61086</link>
			<description><![CDATA[<p><strong>dab00</strong>, спасибо! Работает! А что надо изменить в скрипте, если перед колонками с числами будет не одна колонка, а три?</p>]]></description>
			<author><![CDATA[null@example.com (DIMMon)]]></author>
			<pubDate>Thu, 21 Jun 2012 21:05:26 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=61086#p61086</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Подсчет суммы чисел в колонке файла csv]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=61085#p61085</link>
			<description><![CDATA[<div class="codebox"><pre><code>
Option Explicit
Const CsvFile1 = &quot;qwe.csv&quot; &#039;читаем
Const CsvFile2 = &quot;qwe.txt&quot; &#039;пишем
Dim fso, arr, i, x, y, newCsvFile

Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot;)

If Not fso.FileExists(CsvFile1) Then
	MsgBox &quot;Файл &quot; &amp; CsvFile1 &amp; &quot; не найден&quot;
	WScript.Quit
End If

arr = ReadCSV(CsvFile1) &#039;читаем

For i = 1 To UBound(arr,2) &#039;считаем
	x = x + CInt(arr(1,i))
	y = y + CInt(arr(2,i))
Next

With fso	
	If Not .FileExists(CsvFile2) Then
		Set newCsvFile = .CreateTextFile(CsvFile2)
		newCsvFile.Close	
	End If
	
	Set newCsvFile = .OpenTextFile(CsvFile2,8)
	With newCsvFile &#039;пишем
		.WriteLine arr(1,0) &amp; &quot; = &quot; &amp; x
		.WriteLine arr(2,0) &amp; &quot; = &quot; &amp; y		
		.Close
	End With
End With

Function ReadCSV(filePath)	
	Dim dataArray() 
	Dim splitArray 
	Dim i, j 
	i = 0
	With fso.OpenTextFile(filePath) 		
		Do Until .AtEndOfStream 			
			splitArray = Split(.ReadLine, &quot;;&quot;)			
			ReDim Preserve dataArray(2, i)		
			For j = 0 To 2
				dataArray(j, i) = splitArray(j)
			Next				
			i = i + 1				
		Loop
		.Close
	End With
	ReadCSV = dataArray
End Function</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (dab00)]]></author>
			<pubDate>Thu, 21 Jun 2012 20:22:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=61085#p61085</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Подсчет суммы чисел в колонке файла csv]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=61082#p61082</link>
			<description><![CDATA[<p>1. На выложенном Вами образце пробовали?</p><p>2. Подробно опишите проделанные Вами действия, чтобы я мог воспроизвести ошибку.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Thu, 21 Jun 2012 17:07:59 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=61082#p61082</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Подсчет суммы чисел в колонке файла csv]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=61081#p61081</link>
			<description><![CDATA[<p>Что-то я не так делаю. Ругается<br /></p><div class="quotebox"><blockquote><p>logparser.vbs(21, 9) WScript.CreateObject: Could not locate automation class named &quot;MSUtil.LogQuery&quot;.</p></blockquote></div><p>После переустановки парсера стал ругаться на <br /></p><div class="quotebox"><blockquote><p>logparser.vbs(41, 9) CLogQueryClass: Error parsing query: Syntax Error: &lt;sqlfunction-expr&gt;: no matching closing parenthesis [SQL query syntax invalid or unsupported.]</p></blockquote></div>]]></description>
			<author><![CDATA[null@example.com (DIMMon)]]></author>
			<pubDate>Thu, 21 Jun 2012 13:59:38 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=61081#p61081</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: Подсчет суммы чисел в колонке файла csv]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=61080#p61080</link>
			<description><![CDATA[<p>Ну, по большому счёту, сие не есть csv-файл.</p><p>С помощью <a href="http://technet.microsoft.com/ru-ru/scriptcenter/dd919274">Log Parser</a>:<br /></p><div class="codebox"><pre><code>Option Explicit

Dim objFSO

Dim strSourceFile

Dim objLogQuery
Dim objCOMTSVInputContext
Dim objRecord

Dim strQueryPart
Dim i


If WScript.Arguments.Count = 1 Then
    strSourceFile = WScript.Arguments.Item(0)
    
    Set objFSO = WScript.CreateObject(&quot;Scripting.FileSystemObject&quot;)
    
    If objFSO.FileExists(strSourceFile) Then
        Set objLogQuery = WScript.CreateObject(&quot;MSUtil.LogQuery&quot;)
        Set objCOMTSVInputContext = WScript.CreateObject(&quot;MSUtil.LogQuery.TSVInputFormat&quot;)
        
        With objCOMTSVInputContext
            .iCodepage  = 1251
            .iSeparator = &quot;;&quot;
        End With
        
        strQueryPart = &quot;&quot;
        
        With objLogQuery.Execute(&quot;SELECT * FROM &#039;&quot; &amp; strSourceFile &amp; &quot;&#039;&quot;, objCOMTSVInputContext)
            For i = 3 To .getColumnCount() - 1
                strQueryPart = strQueryPart &amp; &quot;SUM(&quot; &amp; .getColumnName(i) &amp; &quot;) AS &quot; &amp; .getColumnName(i) &amp; &quot;, &quot;
            Next
            
            strQueryPart = Left(strQueryPart, Len(strQueryPart) - 2)
            
            .close
        End With
        
        With objLogQuery.Execute(&quot;SELECT &quot; &amp; strQueryPart &amp; &quot; FROM &#039;&quot; &amp; strSourceFile &amp; &quot;&#039;&quot;, objCOMTSVInputContext)
            Set objRecord = .getRecord()
            
            For i = 0 To .getColumnCount() - 1
                WScript.StdOut.WriteLine .getColumnName(i) &amp; &quot;=&quot; &amp; CStr(objRecord.getValue(i))
            Next
            
            Set objRecord = Nothing
            
            .close
        End With
        
        Set objCOMTSVInputContext = Nothing
        Set objLogQuery           = Nothing
    Else
        WScript.StdOut.WriteLine &quot;Source file [&quot; &amp; strSourceFile &amp; &quot;] not found&quot;
        
        WScript.Quit 2
    End If
    
    Set objFSO = Nothing
Else
    WScript.StdOut.WriteLine &quot;Usage: cscript.exe //nologo &quot;&quot;&quot; &amp; WScript.ScriptName &amp; &quot;&quot;&quot; &quot;&quot;&lt;Source file&gt;&quot;&quot;&quot;
    
    WScript.Quit 1
End If

WScript.Quit 0</code></pre></div><p>Примерный вызов:<br /></p><div class="codebox"><pre><code>cscript.exe //nologo &quot;c:\My Scripts\Script.vbs&quot; &quot;c:\Temp\FileIn.csv&quot;&gt;&quot;e:\FileOut.txt&quot;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Thu, 21 Jun 2012 13:13:44 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=61080#p61080</guid>
		</item>
		<item>
			<title><![CDATA[VBScript: Подсчет суммы чисел в колонке файла csv]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=61074#p61074</link>
			<description><![CDATA[<p>Здравствуйте, <span style="color: Green"><strong>всем</strong></span>! <br />Есть такая задача:</p><p>Имеется файл csv такого вида:<br /></p><div class="quotebox"><blockquote><p>текст1;текст2;текст3<br />10.10.3.131;484;191<br />10.10.3.131;347;503<br />10.10.3.131;514;210<br />10.10.3.131;510;190<br />10.10.3.131;347;503<br />10.10.3.131;514;210<br />10.10.3.131;510;190<br />10.10.3.131;347;503<br />10.10.3.131;514;211<br />10.10.3.131;510;190<br />10.10.3.131;514;210<br />10.10.3.131;347;503</p></blockquote></div><p>Нужно сложить числа в первой и во второй колонке, а результат сохранить в новом фале вида:<br /></p><div class="quotebox"><blockquote><p>текст2=<br />текст3=</p></blockquote></div><p>П<span style="color: Green"><strong>омогите</strong></span>, пожалуйста, чем сможете <img src="//forum.script-coding.com/img/smilies/yikes.png" width="15" height="15" /><span style="color: Green"><strong>.</strong></span></p>]]></description>
			<author><![CDATA[null@example.com (DIMMon)]]></author>
			<pubDate>Thu, 21 Jun 2012 09:34:39 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=61074#p61074</guid>
		</item>
	</channel>
</rss>
