473,404 Members | 2,187 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,404 software developers and data experts.

Enum not working correct in array index?

Ok, I can't believe what I am seeing. I am sure I do this other places with
no problems, but I sure can't here.

I have some code that is indexing into the ItemArray in a DataSet's DataRow.
I basically want to change the value of the data stored at a particular
index in the ItemArray. Ideally, I would like for my code to look like this
(pay attention to the index of ItemArray):

row.ItemArray[(int)GridColumnIndexes.Part - 1] =
itemArray[(int)GridColumnIndexes.Part - 1].ToString().Substring(3);

This would allow me to chop off the first 3 characters.

However, the expression (int)GridColumnIndexes.Part - 1 is not evaluating to
the correct index in the ItemArray!!!

First, here is my GridColumnIndexes enum:

protected enum GridColumnIndexes : int
{
Select = 0,
Line,
Part,
GroupCode,
BackorderQuantity,
OrderDate,
PO,
OrderNumber,
OrderType,
}

The Part value is 2, so I should be indexing into the 2nd element (with an
index of 1) in ItemArray.

So, the statement:

row.ItemArray[(int)GridColumnIndexes.Part - 1] =
itemArray[(int)GridColumnIndexes.Part - 1].ToString().Substring(3);

should be the same as:

row.ItemArray[1] =
itemArray[(int)GridColumnIndexes.Part - 1].ToString().Substring(3);

but it is not.

Please look at the following image from my debugger: I am going to try to
encode an img link, but just in case, here is a link to the image:

http://www.netsplore.com/PublicPorta...aspx?tabid=276

<img src='http://www.netsplore.com/PublicPortal/Default.aspx?tabid=276'>

Notice that in the watch window,

row.ItemArray[(int)GridColumnIndexes.Part - 1]

and

row.ItemArray[index]

are not accessing the same element of ItemArray even though I set index to
(int)GridColumnIndexes.Part - 1.

Anyone have any idea what is going on here?

Thanks.

Aug 23 '06 #1
8 2254

Joe Rattz wrote:
Ok, I can't believe what I am seeing. I am sure I do this other places with
no problems, but I sure can't here.

I have some code that is indexing into the ItemArray in a DataSet's DataRow.
I basically want to change the value of the data stored at a particular
index in the ItemArray. Ideally, I would like for my code to look like this
(pay attention to the index of ItemArray):

row.ItemArray[(int)GridColumnIndexes.Part - 1] =
itemArray[(int)GridColumnIndexes.Part - 1].ToString().Substring(3);

This would allow me to chop off the first 3 characters.

However, the expression (int)GridColumnIndexes.Part - 1 is not evaluating to
the correct index in the ItemArray!!!

First, here is my GridColumnIndexes enum:

protected enum GridColumnIndexes : int
{
Select = 0,
Line,
Part,
GroupCode,
BackorderQuantity,
OrderDate,
PO,
OrderNumber,
OrderType,
}

The Part value is 2, so I should be indexing into the 2nd element (with an
index of 1) in ItemArray.

So, the statement:

row.ItemArray[(int)GridColumnIndexes.Part - 1] =
itemArray[(int)GridColumnIndexes.Part - 1].ToString().Substring(3);

should be the same as:

row.ItemArray[1] =
itemArray[(int)GridColumnIndexes.Part - 1].ToString().Substring(3);

but it is not.

Please look at the following image from my debugger: I am going to try to
encode an img link, but just in case, here is a link to the image:

http://www.netsplore.com/PublicPorta...aspx?tabid=276

<img src='http://www.netsplore.com/PublicPortal/Default.aspx?tabid=276'>

Notice that in the watch window,

row.ItemArray[(int)GridColumnIndexes.Part - 1]

and

row.ItemArray[index]

are not accessing the same element of ItemArray even though I set index to
(int)GridColumnIndexes.Part - 1.

Anyone have any idea what is going on here?

Thanks.
In this case I would suspect the debugger of lying to me. Try this:

int gridIndex = (int)GridColumnIndexes.Part - 1;

and see what the debugger says gridIndex is set to.

Aug 23 '06 #2
I am a little confused. I already did that except I named my variable index
instead of gridIndex. As you can see in the screenshot I provide the link
for, I set index = to what you say, and you can see its value in the watch
window.

You think the debugger is lying?

"Bruce Wood" wrote:
>
Joe Rattz wrote:
Ok, I can't believe what I am seeing. I am sure I do this other places with
no problems, but I sure can't here.

I have some code that is indexing into the ItemArray in a DataSet's DataRow.
I basically want to change the value of the data stored at a particular
index in the ItemArray. Ideally, I would like for my code to look like this
(pay attention to the index of ItemArray):

row.ItemArray[(int)GridColumnIndexes.Part - 1] =
itemArray[(int)GridColumnIndexes.Part - 1].ToString().Substring(3);

This would allow me to chop off the first 3 characters.

However, the expression (int)GridColumnIndexes.Part - 1 is not evaluating to
the correct index in the ItemArray!!!

First, here is my GridColumnIndexes enum:

protected enum GridColumnIndexes : int
{
Select = 0,
Line,
Part,
GroupCode,
BackorderQuantity,
OrderDate,
PO,
OrderNumber,
OrderType,
}

The Part value is 2, so I should be indexing into the 2nd element (with an
index of 1) in ItemArray.

So, the statement:

row.ItemArray[(int)GridColumnIndexes.Part - 1] =
itemArray[(int)GridColumnIndexes.Part - 1].ToString().Substring(3);

should be the same as:

row.ItemArray[1] =
itemArray[(int)GridColumnIndexes.Part - 1].ToString().Substring(3);

but it is not.

Please look at the following image from my debugger: I am going to try to
encode an img link, but just in case, here is a link to the image:

http://www.netsplore.com/PublicPorta...aspx?tabid=276

<img src='http://www.netsplore.com/PublicPortal/Default.aspx?tabid=276'>

Notice that in the watch window,

row.ItemArray[(int)GridColumnIndexes.Part - 1]

and

row.ItemArray[index]

are not accessing the same element of ItemArray even though I set index to
(int)GridColumnIndexes.Part - 1.

Anyone have any idea what is going on here?

Thanks.

In this case I would suspect the debugger of lying to me. Try this:

int gridIndex = (int)GridColumnIndexes.Part - 1;

and see what the debugger says gridIndex is set to.

Aug 23 '06 #3
Joe,

I'm not going to comment on the debugger screenshot. I just want to say that
you cannot use the ItemArray like this.

You can use this property to set the data for the whole row at once. When
you read this property the DataRow class creates new array and copy the
columns data in it. When the property is set with an array the setter copies
the elements form the array into the datarow. When you change the data at
particular index you don't change the datarow, rather you work with copy of
the data. To apply the changes you need to put the whole array back.

--
HTH
Stoitcho Goutsev (100)
"Joe Rattz" <Jo******@discussions.microsoft.comwrote in message
news:16**********************************@microsof t.com...
>I am a little confused. I already did that except I named my variable
index
instead of gridIndex. As you can see in the screenshot I provide the link
for, I set index = to what you say, and you can see its value in the watch
window.

You think the debugger is lying?

"Bruce Wood" wrote:
>>
Joe Rattz wrote:
Ok, I can't believe what I am seeing. I am sure I do this other places
with
no problems, but I sure can't here.

I have some code that is indexing into the ItemArray in a DataSet's
DataRow.
I basically want to change the value of the data stored at a
particular
index in the ItemArray. Ideally, I would like for my code to look like
this
(pay attention to the index of ItemArray):

row.ItemArray[(int)GridColumnIndexes.Part - 1] =
itemArray[(int)GridColumnIndexes.Part - 1].ToString().Substring(3);

This would allow me to chop off the first 3 characters.

However, the expression (int)GridColumnIndexes.Part - 1 is not
evaluating to
the correct index in the ItemArray!!!

First, here is my GridColumnIndexes enum:

protected enum GridColumnIndexes : int
{
Select = 0,
Line,
Part,
GroupCode,
BackorderQuantity,
OrderDate,
PO,
OrderNumber,
OrderType,
}

The Part value is 2, so I should be indexing into the 2nd element (with
an
index of 1) in ItemArray.

So, the statement:

row.ItemArray[(int)GridColumnIndexes.Part - 1] =
itemArray[(int)GridColumnIndexes.Part - 1].ToString().Substring(3);

should be the same as:

row.ItemArray[1] =
itemArray[(int)GridColumnIndexes.Part - 1].ToString().Substring(3);

but it is not.

Please look at the following image from my debugger: I am going to try
to
encode an img link, but just in case, here is a link to the image:

http://www.netsplore.com/PublicPorta...aspx?tabid=276

<img
src='http://www.netsplore.com/PublicPortal/Default.aspx?tabid=276'>

Notice that in the watch window,

row.ItemArray[(int)GridColumnIndexes.Part - 1]

and

row.ItemArray[index]

are not accessing the same element of ItemArray even though I set index
to
(int)GridColumnIndexes.Part - 1.

Anyone have any idea what is going on here?

Thanks.

In this case I would suspect the debugger of lying to me. Try this:

int gridIndex = (int)GridColumnIndexes.Part - 1;

and see what the debugger says gridIndex is set to.


Aug 23 '06 #4
Joe Rattz <Jo******@discussions.microsoft.comwrote:
I am a little confused. I already did that except I named my variable index
instead of gridIndex. As you can see in the screenshot I provide the link
for, I set index = to what you say, and you can see its value in the watch
window.

You think the debugger is lying?
I think it would be good to see a short but complete program
demonstrating the problem.

See http://www.pobox.com/~skeet/csharp/complete.html for details of
what I mean by that.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too
Aug 23 '06 #5
Thanks. After I posted this problem, I hardcoded my array indexes just to
temporarily get past the problem I posted. In doing so, I saw that you are
correct, I cannot do it this way. However, I believe it was the row object
that had a SetValue (or SetValues) method that sure seemed like it should
make this possible. But even using it, I couldn't get this to work. Since
then, I have changed approaches altogether.

Thanks.

"Stoitcho Goutsev (100)" wrote:
Joe,

I'm not going to comment on the debugger screenshot. I just want to say that
you cannot use the ItemArray like this.

You can use this property to set the data for the whole row at once. When
you read this property the DataRow class creates new array and copy the
columns data in it. When the property is set with an array the setter copies
the elements form the array into the datarow. When you change the data at
particular index you don't change the datarow, rather you work with copy of
the data. To apply the changes you need to put the whole array back.

--
HTH
Stoitcho Goutsev (100)
"Joe Rattz" <Jo******@discussions.microsoft.comwrote in message
news:16**********************************@microsof t.com...
I am a little confused. I already did that except I named my variable
index
instead of gridIndex. As you can see in the screenshot I provide the link
for, I set index = to what you say, and you can see its value in the watch
window.

You think the debugger is lying?

"Bruce Wood" wrote:
>
Joe Rattz wrote:
Ok, I can't believe what I am seeing. I am sure I do this other places
with
no problems, but I sure can't here.

I have some code that is indexing into the ItemArray in a DataSet's
DataRow.
I basically want to change the value of the data stored at a
particular
index in the ItemArray. Ideally, I would like for my code to look like
this
(pay attention to the index of ItemArray):

row.ItemArray[(int)GridColumnIndexes.Part - 1] =
itemArray[(int)GridColumnIndexes.Part - 1].ToString().Substring(3);

This would allow me to chop off the first 3 characters.

However, the expression (int)GridColumnIndexes.Part - 1 is not
evaluating to
the correct index in the ItemArray!!!

First, here is my GridColumnIndexes enum:

protected enum GridColumnIndexes : int
{
Select = 0,
Line,
Part,
GroupCode,
BackorderQuantity,
OrderDate,
PO,
OrderNumber,
OrderType,
}

The Part value is 2, so I should be indexing into the 2nd element (with
an
index of 1) in ItemArray.

So, the statement:

row.ItemArray[(int)GridColumnIndexes.Part - 1] =
itemArray[(int)GridColumnIndexes.Part - 1].ToString().Substring(3);

should be the same as:

row.ItemArray[1] =
itemArray[(int)GridColumnIndexes.Part - 1].ToString().Substring(3);

but it is not.

Please look at the following image from my debugger: I am going to try
to
encode an img link, but just in case, here is a link to the image:

http://www.netsplore.com/PublicPorta...aspx?tabid=276

<img
src='http://www.netsplore.com/PublicPortal/Default.aspx?tabid=276'>

Notice that in the watch window,

row.ItemArray[(int)GridColumnIndexes.Part - 1]

and

row.ItemArray[index]

are not accessing the same element of ItemArray even though I set index
to
(int)GridColumnIndexes.Part - 1.

Anyone have any idea what is going on here?

Thanks.

In this case I would suspect the debugger of lying to me. Try this:

int gridIndex = (int)GridColumnIndexes.Part - 1;

and see what the debugger says gridIndex is set to.



Aug 23 '06 #6
Due to the issue that Stoitcho mentioned, I have changed my approach and no
longer have the code. However, I stand by that original problem. I offer
the screenshot of my debugger as evidence. That image is not doctored in any
way. I have no idea what was going on there. If you look at the value I set
index equal to, and the two bottom expressions in the watch window, you can
see that the ItemArray was being indexed into at two different locations,
even though it seems like it should have been the same location.

BTW, those two Values displayed for the two bottom watch expressions are
legitimate indexes into the array. array[0] was equal to "AMM", and array[1]
was equal to "AMM691410". I didn't want anyone to think that one expression
is seeing only part of the array's value. Its just that both of those two
bottom watch expressions should have seen the same array index, index 1, with
the value of "AMM691410". For some reason, the third watch expression was
indexing into the wrong location of the array.

Thanks.

"Jon Skeet [C# MVP]" wrote:
Joe Rattz <Jo******@discussions.microsoft.comwrote:
I am a little confused. I already did that except I named my variable index
instead of gridIndex. As you can see in the screenshot I provide the link
for, I set index = to what you say, and you can see its value in the watch
window.

You think the debugger is lying?

I think it would be good to see a short but complete program
demonstrating the problem.

See http://www.pobox.com/~skeet/csharp/complete.html for details of
what I mean by that.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too
Aug 23 '06 #7
Joe,

Just use the indexer of the DataRow class

row[(int)GridColumnIndexes.Part - 1] = row[(int)GridColumnIndexes.Part -
1].ToString().Substring(3);
--
HTH
Stoitcho Goutsev (100)
"Joe Rattz" <Jo******@discussions.microsoft.comwrote in message
news:5D**********************************@microsof t.com...
Thanks. After I posted this problem, I hardcoded my array indexes just to
temporarily get past the problem I posted. In doing so, I saw that you
are
correct, I cannot do it this way. However, I believe it was the row
object
that had a SetValue (or SetValues) method that sure seemed like it should
make this possible. But even using it, I couldn't get this to work.
Since
then, I have changed approaches altogether.

Thanks.

"Stoitcho Goutsev (100)" wrote:
>Joe,

I'm not going to comment on the debugger screenshot. I just want to say
that
you cannot use the ItemArray like this.

You can use this property to set the data for the whole row at once. When
you read this property the DataRow class creates new array and copy the
columns data in it. When the property is set with an array the setter
copies
the elements form the array into the datarow. When you change the data at
particular index you don't change the datarow, rather you work with copy
of
the data. To apply the changes you need to put the whole array back.

--
HTH
Stoitcho Goutsev (100)
"Joe Rattz" <Jo******@discussions.microsoft.comwrote in message
news:16**********************************@microso ft.com...
>I am a little confused. I already did that except I named my variable
index
instead of gridIndex. As you can see in the screenshot I provide the
link
for, I set index = to what you say, and you can see its value in the
watch
window.

You think the debugger is lying?

"Bruce Wood" wrote:
Joe Rattz wrote:
Ok, I can't believe what I am seeing. I am sure I do this other
places
with
no problems, but I sure can't here.

I have some code that is indexing into the ItemArray in a DataSet's
DataRow.
I basically want to change the value of the data stored at a
particular
index in the ItemArray. Ideally, I would like for my code to look
like
this
(pay attention to the index of ItemArray):

row.ItemArray[(int)GridColumnIndexes.Part - 1] =
itemArray[(int)GridColumnIndexes.Part -
1].ToString().Substring(3);

This would allow me to chop off the first 3 characters.

However, the expression (int)GridColumnIndexes.Part - 1 is not
evaluating to
the correct index in the ItemArray!!!

First, here is my GridColumnIndexes enum:

protected enum GridColumnIndexes : int
{
Select = 0,
Line,
Part,
GroupCode,
BackorderQuantity,
OrderDate,
PO,
OrderNumber,
OrderType,
}

The Part value is 2, so I should be indexing into the 2nd element
(with
an
index of 1) in ItemArray.

So, the statement:

row.ItemArray[(int)GridColumnIndexes.Part - 1] =
itemArray[(int)GridColumnIndexes.Part -
1].ToString().Substring(3);

should be the same as:

row.ItemArray[1] =
itemArray[(int)GridColumnIndexes.Part -
1].ToString().Substring(3);

but it is not.

Please look at the following image from my debugger: I am going to
try
to
encode an img link, but just in case, here is a link to the image:

http://www.netsplore.com/PublicPorta...aspx?tabid=276

<img
src='http://www.netsplore.com/PublicPortal/Default.aspx?tabid=276'>

Notice that in the watch window,

row.ItemArray[(int)GridColumnIndexes.Part - 1]

and

row.ItemArray[index]

are not accessing the same element of ItemArray even though I set
index
to
(int)GridColumnIndexes.Part - 1.

Anyone have any idea what is going on here?

Thanks.

In this case I would suspect the debugger of lying to me. Try this:

int gridIndex = (int)GridColumnIndexes.Part - 1;

and see what the debugger says gridIndex is set to.




Aug 23 '06 #8
Sorry. I wasn't looking closely enough at your screen shot.

Why do I think that the debugger is lying? I don't trust the debugger
to evaluate complex expressions in watch windows. I don't even trust it
to show me correct values when I mouse over things. I can't remember
the precise details, but I've often moused over expressions as simple
as myObj.Property and been told that the value of Property is
"something", when in fact it's something else, because I have a local
variable named Property that current has the value "something".
Intellisense, or whatever it is in the debugger that shows mouse-over
values, doesn't "get" the context that this Property isn't the local
variable... it's a property of some object, and so shows me the wrong
value when I mouse over it. This has caused me more than one near heart
attack when debugging my code.

I would trust the value of your Index variable, and trust that the
correct array entry is being updated. If you're unsure, use a
MessageBox.Show or a Console.WriteLine to display what's going on...
old-school.

The debugger often lies to me. MessageBox.Show never does.

Joe Rattz wrote:
I am a little confused. I already did that except I named my variable index
instead of gridIndex. As you can see in the screenshot I provide the link
for, I set index = to what you say, and you can see its value in the watch
window.

You think the debugger is lying?

"Bruce Wood" wrote:

Joe Rattz wrote:
Ok, I can't believe what I am seeing. I am sure I do this other places with
no problems, but I sure can't here.
>
I have some code that is indexing into the ItemArray in a DataSet's DataRow.
I basically want to change the value of the data stored at a particular
index in the ItemArray. Ideally, I would like for my code to look like this
(pay attention to the index of ItemArray):
>
row.ItemArray[(int)GridColumnIndexes.Part - 1] =
itemArray[(int)GridColumnIndexes.Part - 1].ToString().Substring(3);
>
This would allow me to chop off the first 3 characters.
>
However, the expression (int)GridColumnIndexes.Part - 1 is not evaluating to
the correct index in the ItemArray!!!
>
First, here is my GridColumnIndexes enum:
>
protected enum GridColumnIndexes : int
{
Select = 0,
Line,
Part,
GroupCode,
BackorderQuantity,
OrderDate,
PO,
OrderNumber,
OrderType,
}
>
The Part value is 2, so I should be indexing into the 2nd element (with an
index of 1) in ItemArray.
>
So, the statement:
>
row.ItemArray[(int)GridColumnIndexes.Part - 1] =
itemArray[(int)GridColumnIndexes.Part - 1].ToString().Substring(3);
>
should be the same as:
>
row.ItemArray[1] =
itemArray[(int)GridColumnIndexes.Part - 1].ToString().Substring(3);
>
but it is not.
>
Please look at the following image from my debugger: I am going to try to
encode an img link, but just in case, here is a link to the image:
>
http://www.netsplore.com/PublicPorta...aspx?tabid=276
>
<img src='http://www.netsplore.com/PublicPortal/Default.aspx?tabid=276'>
>
Notice that in the watch window,
>
row.ItemArray[(int)GridColumnIndexes.Part - 1]
>
and
>
row.ItemArray[index]
>
are not accessing the same element of ItemArray even though I set index to
(int)GridColumnIndexes.Part - 1.
>
Anyone have any idea what is going on here?
>
Thanks.
In this case I would suspect the debugger of lying to me. Try this:

int gridIndex = (int)GridColumnIndexes.Part - 1;

and see what the debugger says gridIndex is set to.
Aug 23 '06 #9

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

Similar topics

3
by: Amy Kimber | last post by:
Hello, I have a file upload page, and I've had it working fine, it was beautiful :-) Anyway, the powers that be moved hosts... and it doesn't work now. The file name is correct, the directory...
10
by: dof | last post by:
I'm trying the following and having problems. I get errors on the array declaration lines. Something about an array must have at least one element. Thanks in advance. D #include stuff .... ...
8
by: Razmig K | last post by:
Dear mates, This is just a small survey for the common (and uncommon) nontrivial uses of the aforementioned C construct. It's posted by an average C programmer who's curious about how his elder...
2
by: Gregg Teehan | last post by:
Suggestions on best practive for array declare / subscript using an enum - this is easy in Delphi / Object Pascal. I want private MyObjectClass myObjects; myObjects = new MyObjectClass ;...
3
by: Richard | last post by:
Okay gang, This should be simple but apparently it's not... I want to use the System.DayOfWeek enum to create and access an array of objects with one object for each day of the week. I'd like...
2
by: Peter | last post by:
Hello, Thanks for reviewing my question. I would like to know why I am getting a syntax error on the following: enum WD_INDICE {DAY,WEEK,MONTH,YEAR}; int wndCount = new int {0, 0, 0, 0}; ...
7
by: Harris | last post by:
Dear all, I have the following codes: ====== public enum Enum_Value { Value0 = 0, Value1 = 10,
3
by: shapper | last post by:
Hello, I have an enum: Public Enum Color Red Blue Green End Enum
0
by: tony_in_da_uk | last post by:
*** I posted this on comp.lang.c++.moderated a couple days ago, and got a near-flippant response from someone who clearly didn't take the time to consider the import. I replied, and it's still not...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
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,...
0
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,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
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...
0
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,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

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.