baddan
Профессор
- Регистрация
- 14 Мар 2008
- Сообщения
- 354
- Реакции
- 42
- Автор темы
- #1
Случилось тут такая напасть заказчик попросил сделать скрипт который фильтрует CSV и выбрасывает его в другой файл сказано сделано, т.к. просил он под сайт было написано:
вобщем тривиальная задача, но упертый заказчик оказался говорит нет возможности на сервер без кнца лазить сделай под винду. денги платят, дельфи не охото запускать, помнится гдето видел php2exe
кочаю значит:
там в примерах есть калькулятор правлю .rc (файл ресурсов)
calc.rc
переделываю калькулятор calculater.php
вот такая вот байда может кому пригодится.
PHP:
<?php
$price=file("price.cvs");
$f1=fopen("tmp.csv","w+");
foreach($price as $s1){
list($id,$kontro,$name,$pred,$ue,$kol,$pr,$tmp)=explode(';',trim($s1));
if(isset($name) && $name!==""){
if(strlen($name)>2 && strpos($name,'Наимено')===false){
fputs($f1,"$name;$pred;$kol\r\n");
}
}
}
fclose($f1);
?>
вобщем тривиальная задача, но упертый заказчик оказался говорит нет возможности на сервер без кнца лазить сделай под винду. денги платят, дельфи не охото запускать, помнится гдето видел php2exe
кочаю значит:
Для просмотра скрытого содержимого вы должны войти или зарегистрироваться.
там в примерах есть калькулятор правлю .rc (файл ресурсов)
calc.rc
PHP:
;This Resource Script was generated by WinAsm Studio.
#define IDD_DIALOG 101
#define IDC_START 1000
IDD_DIALOG DIALOGEX 0,0,120,50
CAPTION "CSV Filter"
FONT 8,"Tahoma"
STYLE 0x10cc0000
EXSTYLE 0x00000080
BEGIN
CONTROL "Start",IDC_START,"Button",0x54000000,10,5,100,20,0x00000000
END
переделываю калькулятор calculater.php
PHP:
<?
/*******************************************************************************
WINBINDER - A native Windows binding for PHP
Copyright c 2004-2005 Hypervisual - see LICENSE.TXT for details
Author: Rubem Pechansky (http://www.hypervisual.com/winbinder/contact.php)
Code sample: Mini-calculator application
*******************************************************************************/
//------------------------------------------------------------ SYSTEM PARAMETERS
define("PATH_SCRIPT", dirname(__FILE__) . "/");
define("PATH_DATA", PATH_SCRIPT);
define("PATH_INC", PATH_SCRIPT . "../include/");
define("PATH_RES", PATH_SCRIPT . "../resources/");
//----------------------------------------------------------------- DEPENDENCIES
include "include/winbinder.php";
//-------------------------------------------------------------------- CONSTANTS
define("APPNAME", "CSV Filter"); // Application name
define("BLANK", "blank");
//----------------------------------------------------------------- DEPENDENCIES
//------------------------------------------------------------- GLOBAL VARIABLES
/*
$newnumber = BLANK;
$memory = 0;
$display = "";
$number1 = "";
$number2 = "";
$opvalue = "";
}*/
//-------------------------------------------------------------- EXECUTABLE CODE
// Create main window from RC template
/*$f = fopen("debug.log","w");
$data = parse_rc(file_get_contents("calc.rc"), '$mainwin', null, 'PopupWindow');
fwrite($f,$data);
fclose($f);*/
eval(parse_rc(file_get_contents("calc.rc"), '$mainwin', null, 'PopupWindow'));
// Set main window handler and enter application loop
wb_set_handler($mainwin, "process_main");
wb_main_loop();
//-------------------------------------------------------------------- FUNCTIONS
// TODO: Calculator is not working properly
// TODO: Use keyboard to enter keys
// Ported and adapted from original JavaScript calculator by Steve Dulaney
// http://www.hmhd.com/steve
/* Process main window commands */
function process_main($window, $id)
{
global $memory, $display;
switch($id) {
case IDCLOSE: // Predefined constant
wb_destroy_window($window);
break;
case IDC_DISPLAY: // Does not process edit controls
break;
default: // Process buttons
$ctrl = wb_get_control($window, $id);
if(wb_get_class($ctrl) != PushButton)
break;
$caption = trim(wb_get_text($ctrl));
switch($caption) {
// Numbers and decimal point
case "Start":
getfile("Ok"); break;
} // switch($caption)
break;
} // switch($id)
}
function getfile($s1)
{
global $mainwin;
$path = getcwd();
$filter = array(array('CSV Files', '*.csv'));
if($fn = wb_sys_dlg_open(NULL, 'Open file', $filter, $path))
{
$price=file($fn);
$f1=fopen("tmp.csv","w+");
foreach($price as $s1){
list($id,$kontro,$name,$pred,$ue,$kol,$pr,$tmp)=explode(';',trim($s1));
if(isset($name) && $name!==""){
if(strlen($name)>2 && strpos($name,'Наимено')===false){
fputs($f1,"$name;$pred;$kol\r\n");
}
}
}
fclose($f1);
wb_message_box(NULL, "Обработан: $fn \nВыгружен в: $path\\tmp.csv");
}
}
?>
вот такая вот байда может кому пригодится.
Для просмотра скрытого содержимого вы должны войти или зарегистрироваться.