|
Using Visual C++ 6.0
I need my app to scan (with wildcard) files on another Workgroup computer on the LAN.
Network Neighborhood finds and reads the other computer's drive just fine.
I am unclear about the syntax to use to see the other computer's drive.
The other computer's "name" is: Music1
Music1 shares it's c drive as: Music1_C
I have placed a text file, a.txt at the c drive root of Music1.
I have tried to get _findfirst() to see it - to no avail.
None of these work:
\\Music1\c:\a.txt
\\Music1\c$\a.txt
Music1_c\a.txt
Interestingly, the only one of these that work from the Windows command line is:
\\music1\c$\a.txt
Any help is much appreciated.
Robert
|
|
|
|
|
This form should work:
\\computername\sharename\pathrelativetoshare\filenameorwildcards
Mark
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
Thanks Mark,
My big "whoops" was that I was searching for \nul rather than
*.* or some exact filename. the \nul is an old DOS
technique to search for the nul file in a directory, which
means you are just looking for the existance of the directory
itself.
Again thanks, it all works now
Yup, mnay years programming in DOS .... will be 59 next month.
All the best,
Robert
|
|
|
|
|
Robert Palma Jr. wrote: None of these work:
\\Music1\c$\a.txt
But have you tried:
\\\\Music1\\c$\\a.txt
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Thanks David,
My big "whoops" was that I was searching for \nul rather than
*.* or some exact filename. the \nul is an old DOS
technique to search for the nul file in a directory, which
means you are just looking for the existance of the directory
itself.
Again thanks, it all works now
Yup, mnay years programming in DOS .... will be 59 next month.
You have posted relies to my questions in the past.
I hope all is very well with you
All the best,
Robert
|
|
|
|
|
Hi Gurus,
I tried to print html files with ShellexecuteEx() to default printer and nothing happened.. no error, nothing in printer spool.
So I tried to use ShellExecute() and the print dialog shows up.
How can I send html file to default printer without user interrupting.
thanks
|
|
|
|
|
ShellexecuteEx() returns BOOL
Nonzero indicates success.
Zero indicates failure.
To get extended error information, call GetLastError.
so try to get Error .
|
|
|
|
|
got 2 function ( second is executed inside first one)
how i will pass the CArray class?
with my code 1 error :
error C2664: 'GetDF' : cannot convert parameter 1 from 'class CArray<class cstring,class="" cstring="">' to 'class CArray<class cstring,class="" cstring="">'
No copy constructor available for class 'CArray<class cstring,class="" cstring="">'
Error executing cl.exe.
double CAnaktisiDlg::FindDF(CString file , CArray < CString, CString > AFArray)
{
CString LineRead ;
CString str7;
CString FilePathName;
const int sz =100;
char buf[sz];
FilePathName = m_FolderName + file;
ifstream FileText(FilePathName);
while(FileText.get(buf,sz))
{
FileText.get();
LineRead = (LPCSTR) buf;
GetDFArray(LineRead);
GetDF(AFArray);
}
FileText.close();
return 0.0;
}
void CAnaktisiDlg::GetDF(CArray < CString , CString > FArray)
{
int nDf=0;
int niDF = 0;
for ( int i = 0 ; i <m_DFWords ; i++)
{
for ( int y = 0 ; y < FArray.GetSize() ; y++)
{
CString LineRead ;
CString FilePathName;
const int sz =100;
char buf[sz];
FilePathName = m_FolderName + FArray.GetAt(y);
ifstream FileText(FilePathName);
while(FileText.get(buf,sz))
{
FileText.get();
LineRead = (LPCSTR) buf;
GetLineArray(LineRead);
nDf= Compare(i);
}
niDF = niDF + nDf;
FileText.close();
}
double s = (double) nDoc/niDF;
log10 ( s );
EachWordIDF[i] = EachWordIDF[i] + (log10 ( s ) )* ( log10(s) );
}
}
-- modified at 15:23 Friday 8th June, 2007
|
|
|
|
|
You should pass a reference to the array. You're trying to pass an array object which requires
a copy constructor the compiler needs to create a temporary object to pass to the other
function. If that's your intent then you'd need to make a CArray-derived class with valid
copy semantics.
Mark
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
:S too much C specific words for me hear what i want to do
i had create a CArray class to store CString (Filenames)
because i dont know how many Files will be each time (so i cant use
static Array[] )
so i want to pass the CArray in each function so i can do some things in these functions
|
|
|
|
|
|
You may also want to define your array class like
CArray < CString, CString & >
so unnecessary copies of a CString for temporary objects aren't created every time you access the
container.
Mark
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
thanks i think i fix it
i put CArray < CString , CString& > &FArray
am i write ? (for the moment no error in compiler )
|
|
|
|
|
Yes! That'll work for your function passed parameters.
Make sure the actual array object you are passing is created the same way:
// Create a CArray < CString , CString& > called MyStringArray
CArray < CString , CString& > MyStringArray;
...
// Call a method/function passing the array by reference
double retval = FindDF(filestr , MyStringArray);
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
i create the CArray in parent function as
CArray <cstring ,="" cstring=""> FArray;
how i have to pass it in the parametr of function ?
|
|
|
|
|
Immunity18 wrote: i create the CArray in parent function as
CArray FArray;
Did you leave out the angle brackets on purpose or by accident.
That should be
CArray < CString , CString& > FArray;
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
CArray < CString , CString > FArray; so i have to go
and correct it the second CString ==> CString&
or can I work with that style ?
|
|
|
|
|
Immunity18 wrote: and correct it the second CString ==> CString&
Yes. It needs to be the same everywhere you use the template definition.
That's why a typedef can simplify things. A typedef creates an alias to the type:
typedef CArray< CString , CString &> CMyStringArray;
Now you can use "CMyStringArray" instead of "CArray< CString , CString &>" everywhere...
typedef CArray< CString , CString &> CMyStringArray;
...
double CAnaktisiDlg::FindDF(CString file , CMyStringArray &AFArray)
...
void CAnaktisiDlg::GetDF(CMyStringArray &FArray)
...
CMyStringArray FArray;
...
double retval = FindDF(filestr , FArray);
Makes it cleaner to read IMO but you're free to use the long version of course
Mark
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
ok i try to do as you command !
but where i will put typedef ? in .h ?
(for the moment i put it in .cpp )
and i will put it where the #includes or where the are the other declarations
|
|
|
|
|
I have in project.h
void GetDF( CMyStringArray &FArray);
double FindDF(CString file , CMyStringArray &AFArray);
and it pop up me errors
error C2061: syntax error : identifier 'CMyStringArray'
|
|
|
|
|
The typedef needs to be visible to any point in the code it is used -
Any .h file will do, or even at the bottom of your stdafx.h precompiled header file if it's
used all over the place
Mark
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
plx plx noob specific language !
|
|
|
|
|
The compiler works top-down - so if you refer to some defined type (class, struct, typedef alias,
#define, etc) then the definitition needs to be above the code that refers to it. That way
the compiler already knows what it means when it sees it.
Typically there's a precompiled header file to make builds faster. Typically this file is called
stdafx.h. In there is all the common stuff used throughout a project so it's a good place to
put anything you want "seen" by the compiler throughout the project.
In your example, if the only place you are reffering to "CMyStringArray" is in one header file
then you could just put the typedef near the top of that file.
Make sense?
Mark
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
yes yes as my before reply i did it I leveled up from 100%noob to 80%noob
|
|
|
|
|
ooooooo ! I leveled up ! \o/ its ok i put it in bottom of stafx.h and works fine thanks again ! mark
|
|
|
|