GO top SCAN WHILE .NOT. EOF() A=A+" "+ALLTRIM(ps) ENDSCAN STRTOFILE(a,'1.ps',.F.)The file 1.ps is Created but there is nothing inside that.
>Local lcFile, lcText >m.lcFile = [temp\test.ps] >Create Cursor dummy (PS c(254), pos i) >Append From (m.lcFile) Sdf >Scan > If Getwordnum(PS, Getwordcount(PS)) = [w] > m.lcText = Getwordnum(PS, Getwordcount(PS) - 1) && The second last word > If Len(Chrtran(m.lcText, [1234567890], [])) = 0 && lcText contains only digits > Replace pos With Val(m.lcText) > Endif > Endif >Endscan >>This will give you a table where the value you want to check is in a separate field. Now you can calculate the values you want, and replace them in the fields. To create the fixed file, you scan the file and use strtofile().
>>U1 >>%%Page: 2 2 >><</Duplex true /Tumble false /ManualFeed false /MediaPosition 1>> setpagedevice >>g n >>/Fn3{d I/ArialBlack F}b/F12{/I 15.0 Fn3}b >>F12 B (BHARAT SANCHAR NIGAM LIMITED)301 805 y >>G >>1 w1 594 774 2 774 L >>g n >>F2 B (Account Number 1010467969)13 789 w >>G >>g n >>F2 B (Invoice Number 10104679690030)580 789 x >>G >>g n >>F2 B (Invoice Date 05/09/2012)229 789 w >>G >>g n >>/F13{/I 7.4 Fn2}b >>F13 B (Page 2)496 16 w >>G >> g g n >>/F15{/I 7.5 Fn2}b >>F15 B (of 4)532 16 w >>G >>G >>N 36 766 534 -8 i >>F8 B (Recurring Charges)38 759 w >>(Product)38 749 w >>(Plan)195 749 w >>(Period)352 749 w >>(Qty)442 749 x >>(Rate)481 749 x >>(Charges)568 749 x >>F9 (DISCOUNT)38 737 w >>(LO-KAR-LO-BAAT-OTHER)195 737 w >>(01/08/12 to 31/08/12)352 737 w >>(NA)442 737 x >>(NA)481 737 x >>(149.00)568 737 x >>F8 (Total Charges \(Rs.\))38 726 w >>(149.00)568 726 x >>N 36 715 534 -8 i >>B (Usage Charges)38 708 w >>(Phone Calls)38 699 w >>(Units)258 699 w >>(Duration/Volume)321 699 w >>(Gross Amt)443 699 x >>(Discount)505 699 x >>(Net Amt)568 699 x >>F9 (Local Cellular)38 688 w >>(407)258 687 w >>(07:29:06)321 687 w >>(407.00)443 687 x >>(372.00)505 687 x >>(35.000)568 687 x >>(Local LL BSNL)38 676 w >>(460)258 675 w >>(04:36:43)321 675 w >>(312.00)443 675 x >>(312.00)505 675 x >>(0.000)568 675 x >>(Special Number Band 3)38 664 w >>(2)258 663 w >>(00:01:27)321 663 w >>(2.00)443 663 x >>(0.00)505 663 x >>(2.000)568 663 x >>(Special Number Band 8)38 652 w >>(70)258 652 w >>(00:57:47)321 652 w >>(0.00)443 652 x >>(0.00)505 652 x >>(0.000)568 652 x >>(Local Landline BSNL)38 640 w >>(1)258 640 w >>(00:01:20)321 640 w >>(1.00)443 640 x >>(1.00)505 640 x >>(0.000)568 640 x >>(STD Cellular)38 629 w >>(2)258 628 w >>(00:01:44)321 628 w >>(2.00)443 628 x >>(0.00)505 628 x >>(2.000)568 628 x >>(STD Intra Circle GT50 BSNL)38 617 w >>(1)258 616 w >>(00:00:11)321 616 w >>(1.00)443 616 x >>(1.00)505 616 x >>(0.000)568 616 x >>F8 (Total Charges \(Rs.\))38 604 w >>(725.00)443 604 x >>(686.00)505 604 x >>(39.00)568 604 x >>/Fn4{d I/Arial-Italic F}b/F14{/I 6.3 Fn4}b >>F14 (For BB 1 Unit = 1 KB)38 595 w >>N 36 586 534 -8 i >>F8 B (Discounts)38 579 w >>(Discount Type)38 570 w >>(Period)258 570 w >>(Discounts)568 570 x >>F9 (LL-FREE-CALLS-50-1)38 558 w >>(01/08/12 to 31/08/12)258 558 w >>(-39.00)568 558 x >>(LO-KAR-LO-BAAT)38 546 w >>(01/08/12 to 31/08/12)258 546 w >>(0.00 - 686.00 Units@100.00%)38 534 w >>(-686.00)568 534 x >>F8 (Total Discounts \(Rs.\))38 523 w >>(-725.00)568 523 x >>g n >>F2 B (Plan FRIENDS-AND-FAMILY)13 775 w >>G >>g n >>F2 B (Phone Number / UserName 0731-2459292)580 775 x >>G >>U1 >>