Citire fisier de pe un server

Intrebari despre limbajul C++, standardul C++, STL, OOP in C++ sau alte subiecte nelegate de VisualC++
Post Reply
toderut
Membru
Membru
Posts: 68
Joined: 03 Aug 2009, 11:17
Judet: Bihor

Citire fisier de pe un server

Post by toderut » 09 Feb 2011, 14:30

Cum deschid un fisier text pentru citire, fiind read-only, situat pe un server la o adresa pe care o cunosc?



toderut
Membru
Membru
Posts: 68
Joined: 03 Aug 2009, 11:17
Judet: Bihor

Re: Citire fisier de pe un server

Post by toderut » 09 Feb 2011, 14:38

Sau sa citesc data (ceasul) de pe un server?

User avatar
cristianamarie
Membru++
Membru++
Posts: 480
Joined: 12 Mar 2009, 18:47
Judet: Iaşi
Location: Iasi

Re: Citire fisier de pe un server

Post by cristianamarie » 09 Feb 2011, 16:37

toderut wrote:Cum deschid un fisier text pentru citire, fiind read-only, situat pe un server la o adresa pe care o cunosc?
InternetOpenUrl si citesti cu InternetReadFile.
Last edited by cristianamarie on 09 Feb 2011, 16:40, edited 1 time in total.
Nuclear launch detected

User avatar
cristianamarie
Membru++
Membru++
Posts: 480
Joined: 12 Mar 2009, 18:47
Judet: Iaşi
Location: Iasi

Re: Citire fisier de pe un server

Post by cristianamarie » 09 Feb 2011, 16:39

toderut wrote:Sau sa citesc data (ceasul) de pe un server?
NetRemoteTOD. E ceea ce face NET TIME \\server. Primesti un TIME_OF_DAY_INFO.
Nuclear launch detected

toderut
Membru
Membru
Posts: 68
Joined: 03 Aug 2009, 11:17
Judet: Bihor

Re: Citire fisier de pe un server

Post by toderut » 09 Feb 2011, 16:52

A mers din prima. Mutumesc Cristi.

toderut
Membru
Membru
Posts: 68
Joined: 03 Aug 2009, 11:17
Judet: Bihor

Re: Citire fisier de pe un server

Post by toderut » 11 Feb 2011, 19:55

Cu citirea orei cu ajutorul functiei NetRemoteTOD de la http://msdn.microsoft.com/en-us/library ... s.85).aspx am urmatoarea problema.
In codul de mai jos (cel de la msdn , simplificat de mine), pszServerName este initializat ca NULL si, in consecinta, citeste ora de pe calc propriu.

Code: Select all

#include <stdio.h>
#include <windows.h> 
#include <lm.h>
#pragma comment(lib, "netapi32.lib")

#ifndef UNICODE
#define UNICODE
#endif

void main()
{
   LPTIME_OF_DAY_INFO pBuf = NULL;
   NET_API_STATUS nStatus;
   LPTSTR pszServerName = NULL;/*Pointer to a constant string that specifies the DNS
   or NetBIOS name of the remote server on which the function is to execute.
   If this parameter is NULL, the local computer is used.*/ 

   nStatus = NetRemoteTOD((LPCWSTR) pszServerName,
                          (LPBYTE *)&pBuf);
   //
   // If the function succeeds, display the current date and time.
   //
   if (nStatus == NERR_Success)
   {
      if (pBuf != NULL)
      {
         fprintf(stderr, "\nThe current date is: %d/%d/%d\n",
                 pBuf->tod_month, pBuf->tod_day, pBuf->tod_year);
         fprintf(stderr, "The current time is: %d:%d:%d\n",
                 pBuf->tod_hours, pBuf->tod_mins, pBuf->tod_secs);
      }
   }
   //
   // Otherwise, display a system error.
   else
      fprintf(stderr, "A system error has occurred: %d\n", nStatus);
   //
   // Free the allocated buffer.
   //
   if (pBuf != NULL)
      NetApiBufferFree(pBuf);
   return;
}
Nu stiu cum sa fac sa-l initializez astfel incat sa citesc ora unui server dorit de mine. Am pus ca si comentariu ce zic ei. Poate testati voi cu un server - care vreti- si sa obtineti ora "absoluta", adica nu vreau sa depinda de ora sistemului calc pe care ruleaza aplicatia.

User avatar
MrSmersh
Microsoft MVP
Microsoft MVP
Posts: 289
Joined: 20 Jul 2007, 10:18
Location: Timisoara
Contact:

Re: Citire fisier de pe un server

Post by MrSmersh » 11 Feb 2011, 23:50

Eu cad in of topic cred ca, dar totusi ce vrei sa faci mai precis?
Teoretic de la Windows 2000 in sus toate systemele sint sincronizate folosind NIST Internet Time Service (ITS) http://www.nist.gov/pml/div688/grp40/its.cfm. Care poate fi apelat si din aplicatia ta (au cod sursa daca nu mai am cod pe undeva).
Deci teoretic calculatoarele sint sincronizate, nu intre ele ci cu o sursa externa amindoua(pina la urma echivalent), si daca totusi nu cred in serviciul din cutie pot face eu citirea de ora de la NIST.
Bine exista si posibilitatea sa vrei sa stii ora alt calculator din alte motive si revin totusi ce vrei sa faci? :biggrin:

User avatar
cristianamarie
Membru++
Membru++
Posts: 480
Joined: 12 Mar 2009, 18:47
Judet: Iaşi
Location: Iasi

Re: Citire fisier de pe un server

Post by cristianamarie » 12 Feb 2011, 11:39

Si cu numele netbios ce are? Pur si simplu pszServerName = L"\\\\servername" sau L"server.localdomain", L"server.google.com" sau cum il cheama. Cred ca merge si cu IP-uri.
Nuclear launch detected

toderut
Membru
Membru
Posts: 68
Joined: 03 Aug 2009, 11:17
Judet: Bihor

Re: Citire fisier de pe un server

Post by toderut » 12 Feb 2011, 16:36

Cristi spune:
L"\\\\servername" sau L"server.localdomain", L"server.google.com" sau cum il cheama
.
Beleaua e ca-mi compileaza cu eroare cu L"server.google.com" ca dice:
"error C2440: 'initializing' : cannot convert from 'unsigned short [18]' to 'char *'". Iar cu
LPTSTR pszServerName="server.google.com" compileaza fara erori dar probabil ca nu-i zic bine serverul.

Totusi, problema mea era ca sa fac varianta demo a unui program cu accesarea orei de pe un server.
pana una, alta am rezolvat-o cum mi-ai zis, cu citirea unui fisier de pe un site unde mi-am pus eu ce am vrut, intr-un fisier text .(chiar gasiti aici http://www.programmershelp.co.uk/showcode.php?e=57 codul sursa. mai tr adaugat lib-ul
wininet.lib). Eu va multumesc inca o data. Chestia era cu citireaa directa a orei care ma zgandarea dupa cum am descris mai sus. :biggrin:

User avatar
cristianamarie
Membru++
Membru++
Posts: 480
Joined: 12 Mar 2009, 18:47
Judet: Iaşi
Location: Iasi

Re: Citire fisier de pe un server

Post by cristianamarie » 13 Feb 2011, 19:33

toderut wrote:Cristi spune:
L"\\\\servername" sau L"server.localdomain", L"server.google.com" sau cum il cheama
.
Beleaua e ca-mi compileaza cu eroare cu L"server.google.com" ca dice:
"error C2440: 'initializing' : cannot convert from 'unsigned short [18]' to 'char *'". Iar cu
Trebuie prototipul cu Unicode. Toate functiile NETAPI pe NT si later sint cu W, chiar daca nu arata.
Nuclear launch detected

Post Reply