[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите со криптом, который выводит из csv файла
Эдик
Здравствуйте!Такая проблема-в CSV файле содержаться данные, примерно как здесь:
1999.10.01,00:00,1.0679,1.0684,1.0637,1.0638,75
1999.10.01,01:00,1.0637,1.0673,1.0636,1.0670,42
1999.10.01,02:00,1.0669,1.0684,1.0669,1.0679,84
те один под одним.Нужно,посчитать среднее арифметическое между тритьим и четвертым значением в строке, причем чтобы считало для каждой строки.
Вот мой код:
<?php
$csv="EURUSD60.csv";
$p=fopen($csv,"r");
$q=file($csv);
foreach($q as $stroka)
{
$itog=substr("$stroka,17,6");
$itog2=substr("$stroka,38,6");
$itog3=($itog+$itog2)/2;
echo "$itog3<br>";
}
fclose($p);
?>

Помогите, что не так.У меня возникли смутные сомнения, что функцией fopen открывать csv нельзя!



Спустя 43 минуты, 28 секунд (23.12.2009 - 22:21) Эдик написал(а):
А не, слава богу разобрался.
А не подскажете, как в текстовый файл записать итоговые значение, тока записать в столбик, один под одним, а то я сделал такой код:
<?php
$csv="EURUSD60.csv";
$p=fopen($csv,"r");
$q=file($csv);
$txt="forex.txt";
$f=fopen($txt,"w");
foreach($q as $stroka)
{

$itog=substr($stroka,17,6);
$itog2=substr($stroka,38,6);
$itog3=($itog+$itog2)/2;
echo "$itog3<br>";
fwrite($f,"$itog3"."\n");

}
fclose($p);
fclose($f);
?>

Так в текстовый файл он записывает все данные подряд, разделяя символом, а надо, чтоб в столбик.Помогите!

Спустя 10 минут, 17 секунд (23.12.2009 - 22:32) VolCh написал(а):
Если под Windows, то вместо
fwrite($f,"$itog3"."\n");
поставь
fwrite($f,$itog3."\r\n"); 


Да и кавычки вокруг itog3 в любом случае лишние

Спустя 14 минут, 59 секунд (23.12.2009 - 22:47) Эдик написал(а):
Большое спасибо biggrin.gif

Спустя 12 часов, 11 минут, 51 секунда (24.12.2009 - 10:58) Guest написал(а):
а ф-ей fgetcsv() не пробовали пользоватся ??

Спустя 38 минут, 10 секунд (24.12.2009 - 11:37) sergeiss написал(а):
Цитата (Guest @ 24.12.2009 - 11:58)
а ф-ей fgetcsv() не пробовали пользоватся ??

Вопрос тоже вполне резонный smile.gif

Но если уж и делать что-то своё, то зачем в коде написано $p=fopen($csv,"r");? Дальше же ведь идет загрузка через file.
И substr тут использовать в таком виде не совсем корректно, т.к. идет очень жесткая привязка к формату данных.
Лучше сначала разбить строку на элементы с помощью explode, и работать уже с отдельными элементами.

Спустя 7 минут, 13 секунд (24.12.2009 - 11:44) Эдик написал(а):
Так а функция fgetcsv() возвращает вроде эл-ты строки, а как так сделать, чтобы к примеру 3 и 4 элементы складывались и делились на 2?Там элементы это то, что разделено запятыми?Я просто не очень въехал в эту функцию.А что такое explode?

Спустя 1 минута, 57 секунд (24.12.2009 - 11:46) Эдик написал(а):
Не ну вроде у меня все получилось, данные получены, так что не знаю..
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.