Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Presbiopia - la 43 ani ?

Termen transcriere autovehicul

Cazare Timisoara pe 4-5 zile

Primele zile ale internetului per...
 Ditra 25

Casti USB-C ptr A-54

Aplicatie medicala / asistent med...

De ce vor atația politicieni...
 ERR_ADDRESS_UNREACHABLE

Legea 18/1968 Se mai aplica?

Digi conectare 2 routere prin fir

Succesiune notar versus instanta ...
 Montaj aer conditionat in balcon ...

Cont curent mulți valuta far...

Sugestii plan casa

Experiente cu firme care cumpara ...
 

Ajutor din text in csv cu diverse modificari

- - - - -
  • Please log in to reply
1 reply to this topic

#1
tvaly

tvaly

    New Member

  • Grup: Validating
  • Posts: 2
  • Înscris: 30.05.2006
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  :worthy:

#2
Atr3ides

Atr3ides

    New Member

  • Grup: Members
  • Posts: 4
  • Înscris: 06.01.2006
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.

View Posttvaly, 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  :worthy:

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

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate