用javascript解析文本文件?或者更好的东西
parsing a text file in javascript? Or something better?
我想知道如何用Javascript解析文本文件并为文本文件中的每个项创建计数。例如,包含以下内容的文本文件:
苹果
橙色
香蕉
苹果
苹果
桃
我想收集的输出是这样的:
苹果3
橙色1
香蕉1
桃1
Javascript可能不是最好的,因为它实际上有数百万行像这样。我可以在PHP之类的其他软件中完成,并将结果存储在MySQL中。我想在项目添加到文件中时运行此例程,并在每次运行后快照结果以进行历史比较。
实现这一目标的最佳方法是什么?
这听起来像是为数据库工作。您可以以毫秒为单位计算数据库表中的项,而使用编译的代码解析文本文件需要几秒钟,使用客户端Javascript需要几分钟。
对项目进行分组和计数的数据库查询非常简单:
select Fruit, count(*)
from FruitTable
group by Fruit
编辑:
我在SQL Server中创建了一个包含800万条记录的测试表,上面的查询大约在三秒内运行。
这是用PHP
$string = file_get_contents ("textfile.txt");
$string_array = explode("'n",$string); foreach($string_array as $value) {
if(isset($str_count[$value]))
$str_count[$value]++;
else
$str_count[$value]=1; } foreach($str_count as $key => $value)
echo $key.": ".$value."<br>";
textfile.txt:
apple
orange
banana
apple
apple
peach
输出:
apple: 3
orange: 1
banana: 1
peach: 1
使用perl,例如:
#/usr/bin/perl-w严格使用;my$file=shift;我的%水果=();打开(我的$handle,"<",$file);while(已定义(my$fruit=<$handle>){咀嚼水果;$fruits{$fruit}++;}foreach my$key(排序键%水果){print"$key:",$fruits{$key},"''n";}
然后用perl fruits.pl FILENAME_TO_FRUITS_FILE
运行
最终,以上是最简单的方法,但如果您确实有数百万的条目,那么您确实应该将其移动到数据库中。任何简单的PHP/MMySQL教程都会有所帮助。
相关文章:
- 有没有更好的动手、具体的方法来学习Javascript
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- 在JavaScript中拆分日期字符串的更好方法是什么
- 为什么$.brower被弃用?还有什么更好的替代方案
- 设置嵌套对象属性的更好方法
- 您有更好的动态方式来缩短复杂的代码jquery吗
- 用Javascript重新格式化复杂文本日期字符串的更好方法
- 有没有比在app.js上绑定模块名称更好的方法来动态加载视图模型和视图以显示模态
- arguments.callee是否仍然可以安全使用,或者是否有更好的选择
- 如何在使用ng repeat时停止传播(或者如何更好地隔离作用域)
- 如何为此 jquery 代码使用函数参数,或者是否有更好的解决方案
- 如何在返回值中换行?或者返回 HTML 的更好方法
- 如何通过引用传递超时?或者更好的实施方式
- 有没有更好的方法来写这篇文章,或者用一种更短更紧凑的方法
- 使用HTML元素作为“模板”是否更好?或者在javascript中动态生成HTML
- “detection"特性;让我失望.一个浏览器检测的案例,或者有更好的方法
- 将变量从php传递到js?或者更好的方法
- 使因果报应测试看起来更好(或者更像rspec)
- 用javascript解析文本文件?或者更好的东西
- 如何在图像下面添加按钮,是我添加元素的正确方式,或者可以做得更好