Ajutor din text in csv cu diverse modificari
Last Updated: Jun 22 2006 12:11, Started by
tvaly
, Jun 08 2006 15:19
·
0
#1
Posted 08 June 2006 - 15:19
Va rog mult sa ma ajutati ca simt ca inebunesc
Am un terminal cu care citesc niste date de la divese aparate si le exporta in calc in format text intr-un final eu trebuie sa le fac csv(excel) ex: 00004201437 0060529 00000 00000 00000 00000 00000 00000 00000 00000 00000 20392 0000012 0060528 00000 00000 00000 00000 00000 00000 00000 00012 00000 20393 0000012 0060527 00003 00008 00008 00000 00000 00000 00000 04015 00000 20394 0000013 0060526 00000 00000 00000 00000 00000 00000 00000 00000 00000 20396 0000012 ma intereseaza cum fac sa imi arate data ( prima coloana) asa: 06-05-29 ca in momentul in care le import imi transforma in ceva de genul 2065/09/19 Produsul finit pe care mi-l recunoaste un program care imi traseaza niste grafice arata asa : MULTICAL® (4583828) /#6 Calendar;E1 - E2 [MWh/Day];Mass 1 [Ton/Day];Mass 2 [Ton/Day];Input a [(Blank)];Input b [(Blank)];P1 Average;P2 Average;T1 Average [°C];T3 Average [°C];T2 Average [°C];Info Day; 06-06-06;0.041;1.19;0;0;0;0;0;44.66;0;17.95;0; 06-06-05;0.051;1.42;0;0;0;0;0;44.64;0;18.16;0; 06-06-04;0.07;1.91;0;0;0;0;0;45.51;0;18.12;0; 06-06-03;0.066;1.82;0;0;0;0;0;45.8;0;18.25;0; 06-06-02;0.051;1.48;0;0;0;0;0;45.55;0;18.69;0; 06-06-01;0.04;1.2;0;0;0;0;0;43.32;0;19.09;0; 06-05-31;0.046;1.45;0;0;0;0;0;43.41;0;18.93;0; 06-05-30;0.05;1.6;0;0;0;0;0;43.56;0;18.65;0; 06-05-29;0.052;1.56;0;0;0;0;0;44.04;0;18.5;0; 06-05-28;0.068;1.95;0;0;0;0;0;44.59;0;18.8;0; 06-05-27;0.081;2.34;0;0;0;0;0;46.1;0;19.21;0; 06-05-26;0.066;1.94;0;0;0;0;0;44.59;0;19.33;0; 06-05-25;0.048;1.51;0;0;0;0;0;43.91;0;18.95;0; 06-05-24;0.047;1.45;0;0;0;0;0;42.57;0;18.36;0; 06-05-23;0.052;1.6;0;0;0;0;0;43;0;17.87;0; 06-05-22;0.048;1.37;0;0;0;0;0;43.23;0;17.29;0; 06-05-21;0.071;1.8;0;0;0;0;0;46.12;0;16.75;0; La acesta totul este scris intr-o singura coloana si are extensia csv Va multumesc mult de tot |
#2
Posted 22 June 2006 - 12:11
E destul de simplu. Va trebui sa folosesti Microsoft Scripting Runtime (scrrun.dll) ca referinta in proiectul tau de VB si apoi sa faci parsing pe fisierul exportat de tine.
Codul de mai jos se copiaza intr-un modul. Option Explicit Dim fso As New FileSystemObject, tsIn As TextStream, tsOut As TextStream Private Function OpenFile4Import(lpPath As String) As TextStream On Error GoTo errH If fso Is Nothing Then Set fso = New FileSystemObject End If Set OpenFile4Import = fso.OpenTextFile(lpPath) errH: End Function Private Function OpenFile4Export(lpPath As String) As texstream On Error GoTo errH If fso Is Nothing Then Set fso = New FileSystemObject End If Set OpenFile4Import = fso.CreateTextFile(lpPath, True) errH: End Function Public Sub Process(lpInputFilePath As String, lpOutputFilePath As String) Dim s As String Dim v() As String Dim lPos As Long 'deschid fisierul pentru import Set tsIn = OpenFile4Import(lpInputFilePath) 'creez fisier de export Set tsOut = OpenFile4Export(lpOutputFilePath) If tsOut Is Nothing Or tsIn Is Nothing Then GoTo errH: s = tsIn.ReadLine 'se scrie header-ul in fisierul de export cu valoarea citita din prima linie importata tsOut.WriteLine "MULTICAL® (" & Val(s) & ") /#6" tsOut.WriteLine "Calendar;E1 - E2 [MWh/Day];Mass 1 [Ton/Day];Mass 2 [Ton/Day];Input a [(Blank)];Input b [(Blank)];P1 Average;P2 Average;T1 Average [°C];T3 Average [°C];T2 Average [°C];Info Day;" While Not tsIn.AtEndOfStream 'se citeste fisierul linie cu linie s = tsIn.ReadLine v = Split(s, " ") 'linia se sparge intr-un vector, fiind delimitata de [space] v(0) = Right(v(0), Len(v(0)) - 1) v(0) = Left(v(0), 2) & "-" & Mid(v(0), 3, 2) & "-" & Right(v(0), 2) 'poti prelucra in continuare fiecare camp in parte s = "" For lPos = 0 To UBound(v) s = s & v(lPos) & ";" 'refac linia, delimitand-o cu ";" Next lPos s = Left(s, Len(s) - 1) 'elimin ultimul caracter ";" tsOut.WriteLine s 'se scrie in export Loop tsOut.Close tsIn.Close errH: MsgBox "Eroare la procesare", vbInformation Exit Sub End Sub Apelezi apoi subrutina Call Process (App.Path & "\Import\import.txt", App.Path & "\Export\export.csv") Sper sa iti fie de ajutor. tvaly, on Jun 8 2006, 16:19, said: Va rog mult sa ma ajutati ca simt ca inebunesc Am un terminal cu care citesc niste date de la divese aparate si le exporta in calc in format text intr-un final eu trebuie sa le fac csv(excel) ex: 00004201437 0060529 00000 00000 00000 00000 00000 00000 00000 00000 00000 20392 0000012 0060528 00000 00000 00000 00000 00000 00000 00000 00012 00000 20393 0000012 0060527 00003 00008 00008 00000 00000 00000 00000 04015 00000 20394 0000013 0060526 00000 00000 00000 00000 00000 00000 00000 00000 00000 20396 0000012 ma intereseaza cum fac sa imi arate data ( prima coloana) asa: 06-05-29 ca in momentul in care le import imi transforma in ceva de genul 2065/09/19 Produsul finit pe care mi-l recunoaste un program care imi traseaza niste grafice arata asa : MULTICAL® (4583828) /#6 Calendar;E1 - E2 [MWh/Day];Mass 1 [Ton/Day];Mass 2 [Ton/Day];Input a [(Blank)];Input b [(Blank)];P1 Average;P2 Average;T1 Average [°C];T3 Average [°C];T2 Average [°C];Info Day; 06-06-06;0.041;1.19;0;0;0;0;0;44.66;0;17.95;0; 06-06-05;0.051;1.42;0;0;0;0;0;44.64;0;18.16;0; 06-06-04;0.07;1.91;0;0;0;0;0;45.51;0;18.12;0; 06-06-03;0.066;1.82;0;0;0;0;0;45.8;0;18.25;0; 06-06-02;0.051;1.48;0;0;0;0;0;45.55;0;18.69;0; 06-06-01;0.04;1.2;0;0;0;0;0;43.32;0;19.09;0; 06-05-31;0.046;1.45;0;0;0;0;0;43.41;0;18.93;0; 06-05-30;0.05;1.6;0;0;0;0;0;43.56;0;18.65;0; 06-05-29;0.052;1.56;0;0;0;0;0;44.04;0;18.5;0; 06-05-28;0.068;1.95;0;0;0;0;0;44.59;0;18.8;0; 06-05-27;0.081;2.34;0;0;0;0;0;46.1;0;19.21;0; 06-05-26;0.066;1.94;0;0;0;0;0;44.59;0;19.33;0; 06-05-25;0.048;1.51;0;0;0;0;0;43.91;0;18.95;0; 06-05-24;0.047;1.45;0;0;0;0;0;42.57;0;18.36;0; 06-05-23;0.052;1.6;0;0;0;0;0;43;0;17.87;0; 06-05-22;0.048;1.37;0;0;0;0;0;43.23;0;17.29;0; 06-05-21;0.071;1.8;0;0;0;0;0;46.12;0;16.75;0; La acesta totul este scris intr-o singura coloana si are extensia csv Va multumesc mult de tot Edited by Atr3ides, 22 June 2006 - 12:12. |
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users