[ Rapaic Rajko @ 12.10.2017. 13:11 ] @
Postovani,

imam pitanje: kako u C-u glasi full pathname na fajl koji se nalazi na drugoj masini?
Buni me double_slash. Ako je naziv nekog fajla u Delphi-ju '\\AnyComp\AnyPubDir\AnyFile.txt', kako bi to isto bilo u C konvenciji?
Imam neki kod koji konvertuje string za OleVariant parametar, i dobije se "\\\\AnyComp\\AnyPubDir\\AnyFile.txt"; naravno s ovim poziv funkcije ne odradi nista, odnosno dobijem poruku da nije validno ima fajla.
Hvala unapred!

Pozz
[ Branimir Maksimovic @ 12.10.2017. 13:27 ] @
Zavisi od f-je, medjutim \ je escape karakter.
Ako hoces u C-u da proizvedes taj string onda:
'\\\\AnyComp\\AnyPubDir\\AnyFile.txt'
Znaci sve po dva \\
[ X Files @ 12.10.2017. 13:44 ] @
Ne znam kako si dobio duple backslashove za pristup? Sigurno ti taj kod za konverziju nije dobar, ili je kod za neku drugu namenu. Zapravo, šta će uopšte kod za konverziju? Prosto, pre pristupa fajlu testiraj sa nekim ShowMessage() kako string izgleda pre pristupa. Treba da izgleda "normalno", sa jednim backslashom.



Dodatni problem može biti pristup drugim operativnim sistemima, kada se umesto backslasheva koriste obični slashevi, izuzev putanuje računara.







[ Branimir Maksimovic @ 12.10.2017. 14:02 ] @
Pitanje je koju f-ju koristi. Cisto sumnjam da fopen moze da prepoznaje da je mreza u pitanju i da radi sa mrezom. Znaci path mora biti validan u lokalu. Na Unixu je to prosto obican path sa slashevima. Ne znam za Windows kako mountuje remote file system i koja je konvencija za path
ali znam sigurno da to fopen ne moze.
[ Burgos @ 12.10.2017. 14:07 ] @
`fopen` radi sa UNC (putanje koje počinju sa \\):

Citat:

fopen accepts paths that are valid on the file system at the point of execution; fopen accepts UNC paths and paths that involve mapped network drives as long as the system that executes the code has access to the share or mapped drive at the time of execution



http://msdn.microsoft.com/en-us/library/yeby3zcb.aspx
[ Branimir Maksimovic @ 12.10.2017. 14:13 ] @
To je nesto mikrosoft specificno. Dakle problem je verovatno sto Windows ne vidi share jer path je onda validan.

edit: ali on nije rekao ni koji OS ni koja f-ja ;)

[Ovu poruku je menjao Branimir Maksimovic dana 12.10.2017. u 15:33 GMT+1]
[ Burgos @ 12.10.2017. 14:38 ] @
Da, pretpostavio sam za OS čim sam video putanju i OLE (a i Delphi). Ali u pravu si za fju ;-)
[ Rapaic Rajko @ 14.10.2017. 22:56 ] @
Kolege, hvala na odgovorima!

Duzan sam da pojasnim o cemu se radilo; u medjuvremenu sam resio problem.

Dakle, u pitanju su pozivi WordDocument funkcija, kao sto je WordDocument.Content.Fields.Add() i WordDocument.SaveAs().

1) WordDocument.Content.Fields.Add() ima treci parametar OleVariant koji sadrzi naziv fajla koji se dodaje/merge-uje. Dakle, ako je naziv ovako nesto "\\\\AnyComp\\AnyDir\\AnyFile" (bez ekstenzije, ali je podrazumevano .doc) funkcija nece raditi. Ali hoce u ovom slucaju "//AnyComp/AnyDir/AnyFile". Zato sam pitao za C konvenciju, i na kraju pribegao drugom resenju, zameni '\' sa '/''.
2) WordDocument.SaveAs() nisam uspeo da nateram da radi za filename "\\\\AnyComp\\AnyDir\\AnyFile" kao ni za "//AnyComp/AnyDir/AnyFile", i to i sa i bez ekstenzije. Sta sam onda uradio? Prekopirao sam fizicki postojeci/stari .doc fajl (CopyFile) pod novim imenom, zatim otvorio sa OpenDocument i dalje ga merge-ovao kao pod 1).

Kao sto se vidi, M$ i dalje zagorcava zivot nama programerima. Verujte mi da sam pokusao da pronadjem detaljnu dokumentaciju: google je izbacio par desetina linkova samo iz msdn-a, i ni jedan nema diskusiju parametara/argumenata za pomenute funkcije; ocekivano od M$. Resio sam problem tako sto sam ga zaobisao .

Jos jednom veliko hvala!

Pozz
[ Branimir Maksimovic @ 14.10.2017. 23:01 ] @
Kad sam radio neki program za Windows pre jedno 10 godina razocarala me dokumentacija koja se moze naci na netu. Otkinuo sam se trazeci ono sto mi je trebalo.