var folder = fso.GetFolder(folderPath);
var files = new Enumerator(folder.Files);
for (; !files.atEnd(); files.moveNext()) {
var file = files.item();
var filename = file.Name;
εγώ αυτό το κάνω μέ JS και παίζει άψογα ...
Και σε sbsl........ πιστεύω αυτό ΄θέλεις. αν σου κάνει κάτι θα χαρώ πολύ
καλό βράδυ
Form
{
[TABLES]
ImpTable=;;;;Master;3;0
[ImpTable]
vImpOk=2;15;1;1;0;Επιβεβαίωση εργασίας;$Y;;1;
vFile2=1;255;1;1;0;Αρχείο(να τελειώνει πάντα με \ );;;;X:\
vHeaderRows=3;30;0;1;0;Πρώτη γραμμή;;;;1
[PANELS]
PANEL11=0;;0;70,30
PANEL12=0;Διαδρομή αρχείου;0;50
PANEL13=0;Επικεφαλίδα αρχείου;0;20
[PANEL11]
ImpTable.vImpOk
[PANEL12]
ImpTable.vFile2
[PANEL13]
ImpTable.vHeaderRows
//[STRINGS]
}
Var
vErrors ,vFileName;
include 'Pilib';
include 'ModuleIntf';
Converter ConvCustomer (TRDR, 'COMPANY;CODE;SODTYPE=13', TRDR);
Converter ConvItem (MTRL, 'COMPANY;CODE;SODTYPE=51', MTRL);
Converter ConvBranch (TRDBRANCH, 'TRDR;COMPANY;CODE;SODTYPE=13', TRDBRANCH);
Converter ConvVat (VAT, 'PERCNT', VAT);
Import ImpSales(sSalDoc,sIteLines) into 'SALDOC,IMPORT:1,WARNINGS:OFF'
{
}
Connect Xplorer Orders
{
connect();
sSalDoc = select 1;
}
Var
x, SQL, vID, TxtRead, vRow, vRowCancel, UserResp, vLine, vLen,vitem_code ,vlineval,vprice ,vfincode ,vdate ,vinsdate, vFile ,vFlag ,x1 ,vinscompany;
{
If (:ImpTable.vImpOK=0)
{
UserResp=SendResponse('Δεν έχετε επιλέξει επιβεβαίωση εργασίας', 'RESULTS.LABELTEXT');
}
else if (:ImpTable.vHeaderRows=Null Or :ImpTable.vHeaderRows < 1)
{
UserResp=SendResponse('Η πρώτη γραμμή πρέπει να είναι μεγαλύτερη είτε ίση με 1', 'RESULTS.LABELTEXT');
}
else
{
UserResp=SendResponse('Έναρξη διαδικασίας...', 'RESULTS.LABELTEXT');
// x=SafeExecSql('Orders','drop table Docs', Null);
// x=SafeExecSql('Orders', SQL, Null);
//------ευρεση αρχειου----------------
vRow = 0;
vFile = FindFirst(:ImpTable.vFile2+'*.txt',63); //H FindFirst (της Pilib) ψαχνει στο φακελο να βρει το πρωτο αρχειο [0]=Filename, [1]=Date, [2]=Size, [3]=Attributes.Epistrefei με αυτο το ονομα
vFileName = getindexvar(vFile,0); //με το 0 θα γυρισει το File Name (getindexvar γιατι η απο πανω γυριζει array) π.χ apografi_11122023.xlsx
if (FileExists(VarToStr(:ImpTable.vFile2+vFileName))='True') //εαν το βρει
{
vFlag = 0; //μεταβλητη για να μπει σε loop για να διαβάζει από το φάκελο τα αρχεια με τη σειρά
while(vFlag = 0)
{
// x=ShowWarning(VarToStr(:ImpTable.vFile2+vFileName));
// x=ShowWarning(VarToStr(vFileName));
// x=ShowWarning(pos('_',vFileName));
// x=ShowWarning(VarToStr(copy(vFileName,pos('_',vFileName)+1,6)));
UserResp=SendResponse('Ανάγνωση αρχείου ASCII...', 'RESULTS.LABELTEXT');
TxtRead=CallPublished('PILib.OpenText', :ImpTable.vFile2+vFileName);
while (CallPublished('PILib.Eof', TxtRead)=0)
{
vLine=CallPublished('PILib.ReadLine', TxtRead)+';';
vLen=Len(vLine);
vitem_code=Copy(vLine,1,Pos(';',vLine)-1);
vLine = Copy(vLine,Pos(';',vLine)+1,vLen);
vlineval=Copy(vLine,1,Pos(';',vLine)-1);
vLine = Copy(vLine,Pos(';',vLine)+1,vLen);
vprice = Copy(vLine,1,Pos(';',vLine)-1);
vLine = Copy(vLine,Pos(';',vLine)+1,vLen);
vfincode = Copy(vLine,1,Pos(';',vLine)-1);
vLine = Copy(vLine,Pos(';',vLine)+1,vLen);
vdate = Copy(vLine,1,Pos(';',vLine)-1);
vdate=Copy(vdate,1,4)+ Copy(vdate,5,2)+Copy(vdate,7,2);
vLine = Copy(vLine,Pos(';',vLine)+1,vLen);
vinscompany = VarToStr(:X.SYS.COMPANY);
vinsdate = VarToStr(:X.SYS.LOGINDATE);
// x=ExecSql('Orders', 'insert into Docs values (:1,:2,:3,:4,:5,:6)' ,
// VarArray( vitem_code,vlineval,vprice,vfincode ,vinscompany ,vdate,vinsdate,7)); //-->δεν μου ενημερωνε σωστα το price
x=ExecSql('Orders', 'insert into CCCDOCS values (' +
QuotedStr(Trim(vitem_code)) + ',' +
QuotedStr(Trim(vlineval)) + ',' +
QuotedStr(Trim(vprice)) + ',' +
QuotedStr('0') + ',' +
QuotedStr(Trim(vfincode)) + ',' +
QuotedStr(Trim(vdate)) + ',' +
QuotedStr(Trim(vinscompany)) + ',Convert(datetime,' +
QuotedStr(Trim(vinsdate)) + ',103))',null);
}
x=CallPublished('PILib.CloseText', TxtRead);
vRow = vRow + 1;
UserResp=SendResponse( vRow, vRow, 0, 'Εισαγωγή εγγραφών ..... παρακαλώ περιμένετε.', 'RESULTS.TOTREC;RESULTS.CURREC;RESULTS.CANREC;RESULTS.LABELTEXT');
x= DeleteFile(:ImpTable.vFile2+vFileName); //------διαγραφή αρχείου
//----------εναλλακτικα με bat αρχειο---------
// x1=CreateText(:ImpTable.vFile2+'not_ok.bat');
// x=Writeline(x1,'DEL '+:ImpTable.vFile2+ vFileName);
// x=Closetext(x1);
// x=ExecPrg(:ImpTable.vFile2+'not_ok.bat', ''); //μεταφορα αρχείου με εκτελση Bat
// x = DeleteFile(:ImpTable.vFile2+'not_ok.bat');
//---ευρεση επόμενου------
vFile = FindNext(vFile);
vFileName = getindexvar(vFile,0);
if (FileExists(VarToStr(:ImpTable.vFile2+vFileName))='True')
{
vFlag = 0;
}
else
vFlag = 1; //---εχουν τελειωσει ολα τα αρχεια
}
x = FindClose(vFile);
UserResp=SendResponse( vRow, vRow, 0, 'Η εργασία ολοκληρώθηκε', 'RESULTS.TOTREC;RESULTS.CURREC;RESULTS.CANREC;RESULTS.LABELTEXT');
}
else
{
//---- δεν βρέθηκε κανένα αρχείο ------
UserResp=SendResponse( 0, 0, 0, 'Δεν βρέθηκε κανένα αρχείο', 'RESULTS.TOTREC;RESULTS.CURREC;RESULTS.CANREC;RESULTS.LABELTEXT');
}
}
}