473,770 Members | 4,055 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Need some help...

This will be my very first VB.Net application and it's pretty simple. But
I've got a snag in my syntax somewhere. Was hoping that someone could point
me in the right direction.

The history:
My work involves creating custom packages of our software product for golf
courses that purchase our software. The course data is kept as a back up in
the event the course needs us to replace their custom files. Each course has
a folder of it's own data under a centralized directory.

The problem:
The custom files are going to become a serious storage issue as our customer
base increases.

The solution:
Compress each course folder into an individual .cab file containing all of
the course's custom files and then archive these files to storage media such
as CD/DVD.

Where I need help:
I found some code for implementing a command line window and passing it a
string through a stream. The command window is being instantiated, but the
string is not getting passed or my syntax for running the makecab utility is
off-base. I've spent several hours looking for sample code that would
explain the makecab syntax and I've also tried to determine if the
parameters are being passed in to the Sub correctly. I've set a break at the
line where the string should be passed to the command window, but I can not
seem to get a respnse from the watches that have been set. I've included a
copy of the sub that I'm using to compress the files. If this is not the
correct forum for this, I do apologize. A nudge in the correct direction
would be deeply appreciated.

Private Sub CompressFolder( ByVal ToFolder As String, ByVal FromFolder As
String, ByVal FinalFile As String)

Dim CompressProcess As Process = New Process

CompressProcess .StartInfo.File Name = "cmd.exe"

CompressProcess .StartInfo.UseS hellExecute = False

CompressProcess .StartInfo.Crea teNoWindow = True

CompressProcess .StartInfo.Redi rectStandardInp ut = True

CompressProcess .StartInfo.Redi rectStandardOut put = True

CompressProcess .StartInfo.Redi rectStandardErr or = True

CompressProcess .Start()

Dim stmStreamIn As IO.StreamWriter = CompressProcess .StandardInput

stmStreamIn.Aut oFlush = True

Dim stmStreamOut As IO.StreamReader = CompressProcess .StandardOutput

Dim stmStreamErr As IO.StreamReader = CompressProcess .StandardError

stmStreamIn.Wri te("makecab.ex e /L %ToFolder% %FromFolder% %FinalFile%" &
System.Environm ent.NewLine)

stmStreamIn.Wri te("exit" & System.Environm ent.NewLine)

If Not CompressProcess .HasExited Then

CompressProcess .Kill()

End If

stmStreamIn.Clo se()

stmStreamOut.Cl ose()

stmStreamErr.Cl ose()

End Sub
Dec 9 '06
46 2537
So you've found that there's nothing more sobering than looking at code you
have written yourself and saying, 'What idiot wrote this rubish?'. :)
That's much betterer now ... but a couple of notes.

You are making 2 calls to the Path.GetFileNam e() method with the same
parameter, to get the name of the deepest node of the folder path. I my view
it is better to call that method once, store the result in a local variable
and use that when you need to:

Dim _deepestnode As String = Path.GetFileNam e(_Folder)
Dec 17 '06 #21
Christmas shopping almost finished.... :)
"Stephany Young" <noone@localhos twrote in message
news:uf******** *****@TK2MSFTNG P04.phx.gbl...
So you've found that there's nothing more sobering than looking at code
you have written yourself and saying, 'What idiot wrote this rubish?'. :)
And nothing more sobering than doing it 5 minutes after you post a EUREKA!
on the newsgroup. :)
You are making 2 calls to the Path.GetFileNam e() method with the same
parameter, to get the name of the deepest node of the folder path. I my
view it is better to call that method once, store the result in a local
variable and use that when you need to:
A logical conclusion and one which I shall take to heart.
You then don't need the local variable strFinalFile and the line where
that is used becomes:

i_Compress.Comp ressFolder(_Fol der,
Path.ChangeExte nsion(Path.Comb ine(strTargetDi r, _deepestnode), "cab"), "",
0)
This won't work. I've already tried it. Not sure why but it gives me an IO
error stating that I'm passing too many variables.
The instantiation of i_Compress is still inside the loop. This will cause
unecessary overhead and should be moved to a point before the start of the
loop. Think of it like making a cup of coffee and leaving it on the beench
of your kitchen. Every time you want a sip you have to go out to the
kitchen and then return to your office. I'm sure that you would consider
that to be a waste of your resources (time and effort).
Now, to make sure I've got this down... The line stating Dim i_Compress as
New CabLib.Compress should occur on any line OUTSIDE the start of the
For...Next loop, but the actual line stating i_Compress.Comp ressFolder...
should be on a line INSIDE the loop?
>Onward and upward :)
As Mork would have stated.... Nanoo...Nanoo.. . :) Sorry, can't do the
spreadfingered handshake here... might get me arrested. :)
Dec 18 '06 #22
Yes ... But I would term it 'BEFORE the start of the loop' rather than
'OUTSIDE the start of the loop' which could also include after the end of
loop (for those that are picky).

And yes, the actual call to i_Compress.Comp ressFolder MUST be inside the
loop.

I don't understand why the call to i_Compress.Comp ressFolder is not working.
It takes 4 parameters and they are:

_Folder,
Path.ChangeExte nsion(Path.Comb ine(strTargetDi r, _deepestnode), "cab")
""
0

The 1st parameter is the source folder.

The 2nd parameter is the name of the resultant .cab file.

The 3rd parameter is a filter for dealing only with a subset of files. ""
(empty string) means don't filter.

The 4th parameter is for limiting the size of any one .cab file. 0 (zero)
means don't limit.

Directly before that line you can throw in:

Console.WriteLi ne(_Folder)
Console.WriteLi ne(Path.ChangeE xtension(Path.C ombine(strTarge tDir,
_deepestnode), "cab"))

and then you can make sure that the values are as expected. (Make sure you
run it from the IDE and the results will be displayed in the Output window).
"Bruce W. Darby" <kr****@comcast .netwrote in message
news:55******** *************** *******@comcast .com...
Christmas shopping almost finished.... :)
"Stephany Young" <noone@localhos twrote in message
news:uf******** *****@TK2MSFTNG P04.phx.gbl...
>So you've found that there's nothing more sobering than looking at code
you have written yourself and saying, 'What idiot wrote this rubish?'. :)

And nothing more sobering than doing it 5 minutes after you post a EUREKA!
on the newsgroup. :)
>You are making 2 calls to the Path.GetFileNam e() method with the same
parameter, to get the name of the deepest node of the folder path. I my
view it is better to call that method once, store the result in a local
variable and use that when you need to:

A logical conclusion and one which I shall take to heart.
>You then don't need the local variable strFinalFile and the line where
that is used becomes:

i_Compress.Comp ressFolder(_Fol der,
Path.ChangeExt ension(Path.Com bine(strTargetD ir, _deepestnode), "cab"),
"", 0)

This won't work. I've already tried it. Not sure why but it gives me an IO
error stating that I'm passing too many variables.
>The instantiation of i_Compress is still inside the loop. This will cause
unecessary overhead and should be moved to a point before the start of
the loop. Think of it like making a cup of coffee and leaving it on the
beench of your kitchen. Every time you want a sip you have to go out to
the kitchen and then return to your office. I'm sure that you would
consider that to be a waste of your resources (time and effort).

Now, to make sure I've got this down... The line stating Dim i_Compress as
New CabLib.Compress should occur on any line OUTSIDE the start of the
For...Next loop, but the actual line stating i_Compress.Comp ressFolder...
should be on a line INSIDE the loop?
>>Onward and upward :)

As Mork would have stated.... Nanoo...Nanoo.. . :) Sorry, can't do the
spreadfingered handshake here... might get me arrested. :)

Dec 18 '06 #23
Possibly a good time to introduce the debugger... if you are going to
monitor code take the opportunity to see how breakpoints, watchpoints, step
and trace work.

"Stephany Young" <noone@localhos twrote in message
news:O5******** *****@TK2MSFTNG P04.phx.gbl...
Yes ... But I would term it 'BEFORE the start of the loop' rather than
'OUTSIDE the start of the loop' which could also include after the end of
loop (for those that are picky).

And yes, the actual call to i_Compress.Comp ressFolder MUST be inside the
loop.

I don't understand why the call to i_Compress.Comp ressFolder is not
working. It takes 4 parameters and they are:

_Folder,
Path.ChangeExte nsion(Path.Comb ine(strTargetDi r, _deepestnode), "cab")
""
0

The 1st parameter is the source folder.

The 2nd parameter is the name of the resultant .cab file.

The 3rd parameter is a filter for dealing only with a subset of files. ""
(empty string) means don't filter.

The 4th parameter is for limiting the size of any one .cab file. 0 (zero)
means don't limit.

Directly before that line you can throw in:

Console.WriteLi ne(_Folder)
Console.WriteLi ne(Path.ChangeE xtension(Path.C ombine(strTarge tDir,
_deepestnode), "cab"))

and then you can make sure that the values are as expected. (Make sure you
run it from the IDE and the results will be displayed in the Output
window).
"Bruce W. Darby" <kr****@comcast .netwrote in message
news:55******** *************** *******@comcast .com...
>Christmas shopping almost finished.... :)
"Stephany Young" <noone@localhos twrote in message
news:uf******* ******@TK2MSFTN GP04.phx.gbl...
>>So you've found that there's nothing more sobering than looking at code
you have written yourself and saying, 'What idiot wrote this rubish?'.
:)

And nothing more sobering than doing it 5 minutes after you post a
EUREKA! on the newsgroup. :)
>>You are making 2 calls to the Path.GetFileNam e() method with the same
parameter, to get the name of the deepest node of the folder path. I my
view it is better to call that method once, store the result in a local
variable and use that when you need to:

A logical conclusion and one which I shall take to heart.
>>You then don't need the local variable strFinalFile and the line where
that is used becomes:

i_Compress.Comp ressFolder(_Fol der,
Path.ChangeEx tension(Path.Co mbine(strTarget Dir, _deepestnode), "cab"),
"", 0)

This won't work. I've already tried it. Not sure why but it gives me an
IO error stating that I'm passing too many variables.
>>The instantiation of i_Compress is still inside the loop. This will
cause unecessary overhead and should be moved to a point before the
start of the loop. Think of it like making a cup of coffee and leaving
it on the beench of your kitchen. Every time you want a sip you have to
go out to the kitchen and then return to your office. I'm sure that you
would consider that to be a waste of your resources (time and effort).

Now, to make sure I've got this down... The line stating Dim i_Compress
as New CabLib.Compress should occur on any line OUTSIDE the start of the
For...Next loop, but the actual line stating i_Compress.Comp ressFolder...
should be on a line INSIDE the loop?
>>>Onward and upward :)

As Mork would have stated.... Nanoo...Nanoo.. . :) Sorry, can't do the
spreadfinger ed handshake here... might get me arrested. :)


Dec 18 '06 #24
Tom,

The only one of these tools that I haven't used is the trace. Without the
other three, I'd have been pulling my hair out by the handful... and I'm
already bald! :) I'll take a look into the trace tool tomorrow, if I can get
back to the keyboard. :) Thanks again.

"Tom Leylan" <tl*****@nospam .netwrote in message
news:u9******** *****@TK2MSFTNG P04.phx.gbl...
Possibly a good time to introduce the debugger... if you are going to
monitor code take the opportunity to see how breakpoints, watchpoints,
step and trace work.

"Stephany Young" <noone@localhos twrote in message
news:O5******** *****@TK2MSFTNG P04.phx.gbl...
>Yes ... But I would term it 'BEFORE the start of the loop' rather than
'OUTSIDE the start of the loop' which could also include after the end of
loop (for those that are picky).

And yes, the actual call to i_Compress.Comp ressFolder MUST be inside the
loop.

I don't understand why the call to i_Compress.Comp ressFolder is not
working. It takes 4 parameters and they are:

_Folder,
Path.ChangeExte nsion(Path.Comb ine(strTargetDi r, _deepestnode), "cab")
""
0

The 1st parameter is the source folder.

The 2nd parameter is the name of the resultant .cab file.

The 3rd parameter is a filter for dealing only with a subset of files. ""
(empty string) means don't filter.

The 4th parameter is for limiting the size of any one .cab file. 0 (zero)
means don't limit.

Directly before that line you can throw in:

Console.WriteLi ne(_Folder)
Console.WriteLi ne(Path.ChangeE xtension(Path.C ombine(strTarge tDir,
_deepestnode ), "cab"))

and then you can make sure that the values are as expected. (Make sure
you run it from the IDE and the results will be displayed in the Output
window).
"Bruce W. Darby" <kr****@comcast .netwrote in message
news:55******* *************** ********@comcas t.com...
>>Christmas shopping almost finished.... :)
"Stephany Young" <noone@localhos twrote in message
news:uf****** *******@TK2MSFT NGP04.phx.gbl.. .
So you've found that there's nothing more sobering than looking at code
you have written yourself and saying, 'What idiot wrote this rubish?'.
:)

And nothing more sobering than doing it 5 minutes after you post a
EUREKA! on the newsgroup. :)

You are making 2 calls to the Path.GetFileNam e() method with the same
parameter, to get the name of the deepest node of the folder path. I my
view it is better to call that method once, store the result in a local
variable and use that when you need to:

A logical conclusion and one which I shall take to heart.

You then don't need the local variable strFinalFile and the line where
that is used becomes:

i_Compress.Comp ressFolder(_Fol der,
Path.ChangeE xtension(Path.C ombine(strTarge tDir, _deepestnode), "cab"),
"", 0)

This won't work. I've already tried it. Not sure why but it gives me an
IO error stating that I'm passing too many variables.

The instantiation of i_Compress is still inside the loop. This will
cause unecessary overhead and should be moved to a point before the
start of the loop. Think of it like making a cup of coffee and leaving
it on the beench of your kitchen. Every time you want a sip you have to
go out to the kitchen and then return to your office. I'm sure that you
would consider that to be a waste of your resources (time and effort).

Now, to make sure I've got this down... The line stating Dim i_Compress
as New CabLib.Compress should occur on any line OUTSIDE the start of the
For...Next loop, but the actual line stating
i_Compress.Co mpressFolder... should be on a line INSIDE the loop?

Onward and upward :)

As Mork would have stated.... Nanoo...Nanoo.. . :) Sorry, can't do the
spreadfingere d handshake here... might get me arrested. :)



Dec 18 '06 #25

"Stephany Young" <noone@localhos twrote in message
news:O5******** *****@TK2MSFTNG P04.phx.gbl...
I don't understand why the call to i_Compress.Comp ressFolder is not
working. It takes 4 parameters and they are:
The second parameter is what causes the failure. It is somehow not seeing
that I'm attempting to pass 'one' simple parameter. I'm thinking that it's
catching the commas in the Path.Combine method and thinking that it's
getting five or six parameters rather than four. In software testing terms,
I'd say that was a bug. LOL

Example:
Param 1 - _Folder,
Param 2 - Path.ChangeExte nsion(Path.Comb ine(strTargetDi r,_deepestNode) ,
Param 3 -"cab:),
Param 4 - "",
Param 5 - 0
_Folder,
Path.ChangeExte nsion(Path.Comb ine(strTargetDi r, _deepestnode), "cab")
""
0

Dec 18 '06 #26
If nothing else I believe you are missing a "." as in ".cab" in the
Path.Combine method. Trust the compiler it isn't confused by commas :-) It
is precisely the lack of ambiguity in a language that makes it all work.
"Bruce W. Darby" <kr****@comcast .netwrote in message
news:Vq******** *************** *******@comcast .com...
>
"Stephany Young" <noone@localhos twrote in message
news:O5******** *****@TK2MSFTNG P04.phx.gbl...
>I don't understand why the call to i_Compress.Comp ressFolder is not
working. It takes 4 parameters and they are:

The second parameter is what causes the failure. It is somehow not seeing
that I'm attempting to pass 'one' simple parameter. I'm thinking that it's
catching the commas in the Path.Combine method and thinking that it's
getting five or six parameters rather than four. In software testing
terms, I'd say that was a bug. LOL

Example:
Param 1 - _Folder,
Param 2 - Path.ChangeExte nsion(Path.Comb ine(strTargetDi r,_deepestNode) ,
Param 3 -"cab:),
Param 4 - "",
Param 5 - 0
> _Folder,
Path.ChangeExte nsion(Path.Comb ine(strTargetDi r, _deepestnode), "cab")
""
0


Dec 18 '06 #27
Well normally I test these things before posting but this time I just read
the docs. After I tested it, it appears to work whether one includes the
dot extension separator or not but given the documentation says it should
include the dot I would make a habit of it.

What I would suggest is that you break this line apart:
Path.ChangeExte nsion(Path.Comb ine(strTargetDi r,_deepestNode) , ".cab") to see
what the results are in the two methods (you can recombine them after you
see it works.

So try something similar to this (may have been suggested already) to see if
you get the results you expect.

debug.writeline (strTargetDir)
debug.writeline (_deepestNode)
debug.writeline (Path.Combine(s trTargetDir,_de epestNode))
debug.writeline (Path.ChangeExt ension(Path.Com bine(strTargetD ir,_deepestNode ),
".cab"))

If everything looks okay I'd suggest you run through the loop you have but
don't call i_Compress.Comp ressFolder() just comment that for now. Just
output the results of the path methods instead so you can see if one of them
is malformed. Besides that you should post what IO error you received
(those are clues.)

Is there a possibility you have need to trim the values you're getting from
the textbox? If there are trailing blanks anywhere they would be combined
into the final path and that one isn't likely to exist.
"Tom Leylan" <tl*****@nospam .netwrote in message
news:up******** ******@TK2MSFTN GP06.phx.gbl...
If nothing else I believe you are missing a "." as in ".cab" in the
Path.Combine method. Trust the compiler it isn't confused by commas :-)
It is precisely the lack of ambiguity in a language that makes it all
work.
"Bruce W. Darby" <kr****@comcast .netwrote in message
news:Vq******** *************** *******@comcast .com...
>>
"Stephany Young" <noone@localhos twrote in message
news:O5******* ******@TK2MSFTN GP04.phx.gbl...
>>I don't understand why the call to i_Compress.Comp ressFolder is not
working. It takes 4 parameters and they are:

The second parameter is what causes the failure. It is somehow not seeing
that I'm attempting to pass 'one' simple parameter. I'm thinking that
it's catching the commas in the Path.Combine method and thinking that
it's getting five or six parameters rather than four. In software testing
terms, I'd say that was a bug. LOL

Example:
Param 1 - _Folder,
Param 2 - Path.ChangeExte nsion(Path.Comb ine(strTargetDi r,_deepestNode) ,
Param 3 -"cab:),
Param 4 - "",
Param 5 - 0
>> _Folder,
Path.ChangeExte nsion(Path.Comb ine(strTargetDi r, _deepestnode), "cab")
""
0



Dec 18 '06 #28
Typo!!!!!

Directly following the b of cab should be a " - you have a :

FYI, I get the impression that you are typing your code into the message
rather than copying and pasting it. If you are then it is too open to typo's
etc. and we are scratching our heads to figure out how you even managed to
compile it etc.

When you do copy and paste code from the IDE into a message it may look like
a load of rubbish. Simply do a Format/Rich Text (HTML) from the menu and
then do a Format/Plain Text and it will look OK.

Now the big question is, what result do you get when you execute?:

Console.WriteLi ne(Path.ChangeE xtension(Path.C ombine(strTarge tDir,
_deepestnode), "cab"))
"Bruce W. Darby" <kr****@comcast .netwrote in message
news:Vq******** *************** *******@comcast .com...
>
"Stephany Young" <noone@localhos twrote in message
news:O5******** *****@TK2MSFTNG P04.phx.gbl...
>I don't understand why the call to i_Compress.Comp ressFolder is not
working. It takes 4 parameters and they are:

The second parameter is what causes the failure. It is somehow not seeing
that I'm attempting to pass 'one' simple parameter. I'm thinking that it's
catching the commas in the Path.Combine method and thinking that it's
getting five or six parameters rather than four. In software testing
terms, I'd say that was a bug. LOL

Example:
Param 1 - _Folder,
Param 2 - Path.ChangeExte nsion(Path.Comb ine(strTargetDi r,_deepestNode) ,
Param 3 -"cab:),
Param 4 - "",
Param 5 - 0
> _Folder,
Path.ChangeExte nsion(Path.Comb ine(strTargetDi r, _deepestnode), "cab")
""
0


Dec 18 '06 #29
Well, I'm not attempting to be argumentative, but in reading up in the
Path.Combine method, it states that if a period is not included in the
extension path, then it automatically includes it. I'm not in any way trying
to fault the compiler.

"Tom Leylan" <tl*****@nospam .netwrote in message
news:up******** ******@TK2MSFTN GP06.phx.gbl...
If nothing else I believe you are missing a "." as in ".cab" in the
Path.Combine method. Trust the compiler it isn't confused by commas :-)
It is precisely the lack of ambiguity in a language that makes it all
work.
"Bruce W. Darby" <kr****@comcast .netwrote in message
news:Vq******** *************** *******@comcast .com...
>>
"Stephany Young" <noone@localhos twrote in message
news:O5******* ******@TK2MSFTN GP04.phx.gbl...
>>I don't understand why the call to i_Compress.Comp ressFolder is not
working. It takes 4 parameters and they are:

The second parameter is what causes the failure. It is somehow not seeing
that I'm attempting to pass 'one' simple parameter. I'm thinking that
it's catching the commas in the Path.Combine method and thinking that
it's getting five or six parameters rather than four. In software testing
terms, I'd say that was a bug. LOL

Example:
Param 1 - _Folder,
Param 2 - Path.ChangeExte nsion(Path.Comb ine(strTargetDi r,_deepestNode) ,
Param 3 -"cab:),
Param 4 - "",
Param 5 - 0
>> _Folder,
Path.ChangeExte nsion(Path.Comb ine(strTargetDi r, _deepestnode), "cab")
""
0



Dec 18 '06 #30

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

6
6328
by: mike | last post by:
Hello, After trying to validate this page for a couple of days now I was wondering if someone might be able to help me out. Below is a list of snippets where I am having the errors. 1. Line 334, column 13: there is no attribute "SRC" <bgsound src="C:\My Documents\zingwent.mids"> You have used the attribute named above in your document, but the document type you are using does not support that attribute for this element. This error is...
5
2196
by: John Flynn | last post by:
hi all i'm going to be quick i have an assignment due which i have no idea how to do. i work full time so i dont have the time to learn it and its due date has crept up on me .. As follows: Objectives The purpose of this assignment is to have you practice the design of object-oriented classes, including one or more of the following concepts
0
1840
by: xunling | last post by:
i have a question about answering ..... this topic is "need help" what do i have to write at te topic line, !after i have klicked the "answer message" button ive tried many possibilities, all dont work "Re:" need help "Re:need help"
9
2937
by: sk | last post by:
I have an applicaton in which I collect data for different parameters for a set of devices. The data are entered into a single table, each set of name, value pairs time-stamped and associated with a device. The definition of the table is as follows: CREATE TABLE devicedata ( device_id int NOT NULL REFERENCES devices(id), -- id in the device
7
3306
by: Timothy Shih | last post by:
Hi, I am trying to figure out how to use unmanaged code using P/Invoke. I wrote a simple function which takes in 2 buffers (one a byte buffer, one a char buffer) and copies the contents of the byte buffer into the character pointer. The code looks like the following: #include <stdio.h> #include <stdlib.h> #include "stdafx.h" BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call,
15
4642
by: Cheryl Langdon | last post by:
Hello everyone, This is my first attempt at getting help in this manner. Please forgive me if this is an inappropriate request. I suddenly find myself in urgent need of instruction on how to communicate with a MySQL database table on a web server, from inside of my company's Access-VBA application. I know VBA pretty well but have never before needed to do this HTTP/XML/MySQL type functions.
16
2539
by: pamelafluente | last post by:
I am still working with no success on that client/server problem. I need your help. I will submit simplified versions of my problem so we can see clearly what is going on. My model: A client uses IE to talk with a server. The user on the client (IE) sees an ASP net page containing a TextBox. He can write some text in this text box and push a submit button.
8
2750
by: skumar434 | last post by:
i need to store the data from a data base in to structure .............the problem is like this ....suppose there is a data base which stores the sequence no and item type etc ...but i need only the sequence nos and it should be such that i can access it through the structure .plz help me .
0
3961
by: U S Contractors Offering Service A Non-profit | last post by:
Brilliant technology helping those most in need Inbox Reply U S Contractors Offering Service A Non-profit show details 10:37 pm (1 hour ago) Brilliant technology helping those most in need Inbox Reply from Craig Somerford <uscos@2barter.net> hide details 10:25 pm (3 minutes ago)
20
4285
by: mike | last post by:
I help manage a large web site, one that has over 600 html pages... It's a reference site for ham radio folks and as an example, one page indexes over 1.8 gb of on-line PDF documents. The site is structured as an upside-down tree, and (if I remember correctly) never more than 4 levels. The site basically grew (like the creeping black blob) ... all the pages were created in Notepad over the last
0
9592
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9425
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10230
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
10004
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9870
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8886
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
5450
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
3972
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
3
2817
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.