Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Incalzire in pardoseala etapizata

Suprataxa card energie?!

Cum era nivelul de trai cam din a...

probleme cu ochelarii
 Impozite pe proprietati de anul v...

teava rezistenta panou apa calda

Acces in Curte din Drum National

Sub mobila de bucatarie si sub fr...
 Rezultat RMN

Numar circuite IPAT si prindere t...

Pareri brgimportchina.ro - teapa ...

Lucruri inaintea vremurilor lor
 Discuții despre TVR Sport HD.

Cost abonament clinica privata

Tremura toata, dar nu de la ro...

Renault Android
 

Deschidere fisiere vb6

- - - - -
  • Please log in to reply
8 replies to this topic

#1
eugen55ro

eugen55ro

    Junior Member

  • Grup: Members
  • Posts: 41
  • Înscris: 18.07.2005
Salutare,

m-ar interesa, daca ma poate ajuta cineva cu o idee macar, sa creez o aplicatie in VB6 care sa deschida un nr. de fisiere text (cam multicele 400-500) si sa-mi afiseze continutul lor, ceva de genul:


NUME FISIER  |  CONTINUT      |   POZA
fisier1.txt       |  continut fisier  (prima linie)  |   (daca prima linie e 0 o bulina verde, daca e diferita de 0 o bulina rosie)
fisier2.txt       |  continut fisier  (prima linie)  |   (daca prima linie e 0 o bulina verde, daca e diferita de 0 o bulina rosie)
.
.
.
fisierX.txt       |  continut fisier  (prima linie)  |   (daca prima linie e 0 o bulina verde, daca e diferita de 0 o bulina rosie)


Multumesc anticipat

#2
bgMiKe

bgMiKe

    Junior Member

  • Grup: Members
  • Posts: 149
  • Înscris: 28.01.2006
Salut,

Nu stiu daca numarul lor (fisierelor) e asa important (1, 2 sau 99). Conteaza mai mult ce trebuie sa faci ca sa le le "trimiti"/preiei in VB: sunt toate intr-un director (eventual structura de directoare), se incarca dintr-o lista, etc.
Pentru preluare si eventual afisare solutia e simpla. Cum organizezi asta in functii (ca sa nici nu te complici) depinde ce anume contin (1 sau mai multe linii) si cat de profi/poo-istic vrei sa arate solutia. De ex. poti avea functie pentru fiecare operatie (citire din fiser, tratare rezultat, afisare rezultat) sau o singura functie.

Alte intrebari:
- "Daca prima linie e 0" - 0 ca lungime sau contine (doar) caracterul 0?
- Poza - vrei sa afisezi si poza respectiva (evident daca exista)?
- Te intereseaza codul pentru preluare fisiere, pentru preluare continut fisier sau pentru afisare?
Sau cum sa faci afisarea?

#3
eugen55ro

eugen55ro

    Junior Member

  • Grup: Members
  • Posts: 41
  • Înscris: 18.07.2005
ideea este simpla:
am un programel care imi redenumeste niste fisere (loguri) cu un cod ex 123456.txt si mi le pune pe un server FTP intr-un singur folder.
Eu ar trebui sa iau folderul respectiv cu cateva sute de fisiere si sa le deschid pe fiecare in parte pentru a vedea rezultatul.
in prima linie din fisier apare o cifra, de exemplu:
- daca nu am nicio eroare apare cifra 0;
- daca am o eroare apare cifra 1;
etc.
in urmatoarele linii din fisiere (daca apare cel putin o eroare) este descrisa eroarea/erorile respective.
cred ca este mult mai complicat, nu stiu, sa am un si un buton in dreptul fiecarei afisari unde rezultatul este diferit de 0 sa vad intreg logul...
nu zic ca nu ar fi bine
iar la partea cu poza m-am gandit ca e mai simplu de vazut unde este cel putin o ereoare, sare mai repede in ochi, daca marea majoritate sunt verzi (fara eroare)

#4
bgMiKe

bgMiKe

    Junior Member

  • Grup: Members
  • Posts: 149
  • Înscris: 28.01.2006
Salut,

1. FTP : pentru partea asta (ca si pentru multe alte functii API) gasesti descriere, exemple in API-Guide (http://www.allapi.net).
Nu (toate) sunt neaparat de folosit in productie, dar macar iti poti face o idee.

2. Lucrul cu fisiere (inclusiv text): ti-am atasat un fragment dintr-un manual (Programming Microsoft Visual Basic 6.0 - daca nu-l ai deja n-ar strica sa-l iei).

3. Afisarea. Aici poate sa fie ceva mai complicat. Depinde cum vrei sa arate. Poti merge pe varianta unui FlexGrid (gasesti detalii despre flexgrid in manualul mentionat mai sus) sau orice control "tabelar". Butonul de "More..." va fi mai greu de adaugat, dar poti opta pentru onclick pe linia respectiva si sa deschizi intr-un fel de popup continutul.
Ziceai ceva de poza. Asta tot in folderul FTP se va salva? O descarci impreuna cu fiserele text?
Daca da, uite o idee: te-ai gandit sa salvezi continutul log-urilor intr-o tabela (MySQL de exemplu), in care caz poti salva si imaginea intr-un camp text/blob? :D
Sau poza e de fapt bulina rosie sau verde reprezentand starea? In cazul asta si la FlexGrid, imagine poate aparea doar in prima coloana (bine, poti gasi sau iti poti face singur un control care sa accepte imagini in orice coloana ... dar ma gandesc ca te complici inutil).

Iti atasez un model de cod facut rapid pentru citirea din fisier

'******************************************************************
' Name :
'   - getFileContent
' Input :
'   <FileFullPath> : in; calea completa catre fisierul sursa
'   <RetStatusCode> : out; codul citit (0 sau 1)
'   <RetStatusContent> : out; continutul citit (descrierea erorii)
' Output :
'   - Byte : 1:OK, other:error
' Author - Status - Date :
'   - *** : created : 2010-11-02 01:43
'   - *** : modified : 2010-11-02 01:43
' Description :
'   - ***
'
Public Function getFileContent( _ 
					  ByVal FileFullPath As String, _
					  ByRef RetStatusCode As Byte, _
					  ByRef RetStatusContent As String _
	) As Byte
	Dim objFSO								  As New FileSystemObject
	Dim hndlFile								As TextStream
	Dim strTemp								 As String
	Dim bytTemp								 As Byte

	' tratare eroare
	On Error GoTo getFileContent_Error
	' setare retur
	getFileContent = 0
	RetStatusCode = 2   ' o valoare neutra, diferita de 0 si 1 din fisier
	RetStatusContent = ""
	
	' deschidere fisier
	Set hndlFile = objFSO.OpenTextFile(FileFullPath, ForReading, False)
	' daca nu e ok, iesi
	If hndlFile Is Nothing Then GoTo getFileContent_Exit
	' citire prima linie
	strTemp = Trim$(hndlFile.ReadLine)
	If strTemp = "0" Or strTemp = "1" Then RetStatusCode = CByte(strTemp)
	' daca eroare, citeste tot
	If RetStatusCode = 1 Then
		Do While Not hndlFile.AtEndOfStream
			strTemp = Trim$(hndlFile.ReadLine)
			RetStatusContent = RetStatusContent & vbCrLf & strTemp
		Loop
	End If
	' inchidere
	hndlFile.Close
	' setare retur
	getFileContent = 1
getFileContent_Exit:
	Set hndlFile = Nothing
	st objFSO = Nothing
	On Error GoTo 0
	Exit Function
getFileContent_Error:
	MsgBox "An unknown error occurred!" & vbCrLf & vbCrLf & _ 
 "Code: " & Err.Number & vbCrLf & _ 
 "Description: " & Err.Description & vbCrLf & vbCrLf & _ 
 "(in procedure <getFileContent> of <Module:Module1>)", vbCritical
	Resume getFileContent_Exit
End Function
'
'******************************************************************

Public Sub loadLogsContent()
	Dim lngCnt								  As Long
	
	Dim bytStatusCode						   As Byte
	Dim strStatusDescription					As String
	Dim bytRet								  As Byte
	
	' functie de metoda aleasa, vei obtine o lista de fisiere
	
	' .todo
	
	' pentru fiecare fisier din lista
		' initializarea bytStatusCode si strStatusDescription se face si in functie deci nu mai este necesar si aici
		' in cazul citirii corecte, cele 2 variabile vor contine respectiv:
		' - codul starii: 0 sau 1;
		' - descrierea: exact liniile din fisierul tau de log, intr-o singur string, separate prin CRLF. Eventual aici poti
		'   aplica split(strStatusDescription, vbcrlf) ca sa le ai pe linii
		bytRet = getFileContent("<file_path>", bytStatusCode, strStatusDescription)
		' daca nu s-a citit corect ... faci ceva
		If bytRet <> 1 Then GoTo faci_ceva
		' afisezi
		
		' .todo
	
	' terminare parcurgere
				
exit_function:
	Exit Sub
faci_ceva:
	' .todo
End Sub


Attached Files


Edited by bgMiKe, 02 November 2010 - 02:25.


#5
eugen55ro

eugen55ro

    Junior Member

  • Grup: Members
  • Posts: 41
  • Înscris: 18.07.2005
Intai de toate vreau sa-ti spun ca sunt foarte incepator in VB, ma straduiesc dar mai este mult pana departe :)

Multumesc mult pentru ajutor insa sunt intr-o ceata totala :)

Partea cu FTP-ul e ca si rezolvata deci nu are rost sa o mai luam in calcul

Pornesc de la partea in care am un folder "C:\loguri" in care sunt cateva sute de fisiere de forma:

123456.txt
123451.txt
123123.txt
324121.txt
etc.

Nu trebuie sa arate extraordinar de bine... doar eu il folosesc sa-mi usureze munca, sa nu mai fiu nevoit sa deschid cateva sute de fisiere.
Nu, poza nu este in folderul FTP, adaug in form doua poze (bulina_verde.jpg si bulina_rosie.jpg) pe care sa mi le afiseze in functie de 0 sau diferit de 0.

<FileFullPath> trebuie sa dau eu calea pentru fiecare fisier in parte?

Ti-am spus sunt foarte incpator nu am lucrat nici cu functii :)

#6
gabirds

gabirds

    Junior Member

  • Grup: Members
  • Posts: 140
  • Înscris: 09.10.2006
ciao!!

vezi, poate te ajuta asta!

Attached Files



#7
eugen55ro

eugen55ro

    Junior Member

  • Grup: Members
  • Posts: 41
  • Înscris: 18.07.2005
Salut,

Ceva de genul... numai ca la multe fisiere se decaleaza coloanele List1 fata de List2 si nu mai stiu care de unde este

#8
bgMiKe

bgMiKe

    Junior Member

  • Grup: Members
  • Posts: 149
  • Înscris: 28.01.2006
Salut,

Ti-am schitat ceva rapid. Nu e perfect dar e functional.

Oricum, daca esti incepator si chiar vrei sa inveti, deja ti-am indicat o carte, zic eu, buna.
Codul, cu cartea, cu google, studiaza-l si adapteaza-l exact la cazul tau.

Numai bine.

Attached Files



#9
eugen55ro

eugen55ro

    Junior Member

  • Grup: Members
  • Posts: 41
  • Înscris: 18.07.2005
Multumesc foarte mult pentru cod si pentru carte.

Codul este mai mult decat perfect pentru ce imi trebuie mie.

Multumesc inca o data!

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