473,396 Members | 2,002 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,396 software developers and data experts.

how can i store address of array elements in an another array element

hi,
i am trying to implement a B+ tree. There is no specification in the implementation so i am using arrays to implement the B+ tree. However, there is a problem that i encountered which is I cannot store the address of an array element in an another array element. it is purpose is reaching the childs. The other thing that i want to mention is that the bucket size of the b+ tree is not specific. It will be determined at the beginning of the program. For example it can store 4,6 or 10 data. it does not matter. Here is my code any help will be appreciated.

Expand|Select|Wrap|Line Numbers
  1. #include<iostream>
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. using namespace std;
  5. #define length(a) (sizeof a / sizeof a[0])
  6. class Node{
  7. public:
  8.     int count;
  9.     int leaf;
  10.     int *data;
  11.     int *pointer;
  12.     Node(int a){
  13.         leaf = 1;
  14.         count = 0;
  15.         data = new int[a];
  16.         pointer = new int[a+1];
  17.  
  18.     }
  19. };
  20. void insert(Node *node, int data, int line){
  21.     Node *temp = new Node(line);
  22.     temp = node;
  23.     int i = 0;
  24.     if(temp->leaf == 1){
  25.         if(temp->count != line){
  26.             while(temp->data[i] < data){
  27.                 i++;
  28.             }
  29.             for (int j = line; j > i; j--){
  30.                 temp->data[j] = temp->data[j - 1];
  31.             }
  32.             temp->data[i] = data;
  33.             temp->count++;
  34.  
  35.         }
  36.         else{
  37.             Node *temp2 = new Node(line);
  38.             Node *temp3 = new Node(line);
  39.             //temp->pointer[0] = &(temp2->data[0]);
  40.             //temp->pointer[1] = &(temp3->data[0]);
  41.             for(int i = 0; i < 2; i++){
  42.                 temp2->data[i] = temp->data[i];
  43.             }
  44.             for(int i = 2; i < 5; i++){
  45.                 temp3->data[i] = temp->data[i];
  46.             }
  47.             for(int i = 0; i < 4; i++){
  48.                 temp->data[i] = 0;
  49.             }
  50.             temp->data[1]=temp3->data[1];
  51.  
  52.         }
  53.     }
  54.  
  55. }
  56. /*void deneme1(){
  57.     int a[3];
  58.     int *b[4];
  59.     b[1] = &(a[1]);
  60.     cout << b[1] << endl;
  61.     cout << &(a[1]) << endl;
  62.  
  63.  
  64. }*/
  65.  
  66. int main(){
  67.     Node *temp = new Node(4);
  68.     Node *temp2 = new Node(4);
  69.     temp2->data[0] = 2;
  70.     cout << &temp2->data[0] << endl;
  71.     temp->pointer[0] = (int)(&temp2->data[0]);
  72.     //long x = &temp2->data[0];
  73.     //temp->pointer[0] = &temp2->data[0];
  74.     temp->data[0] = 3;
  75.     temp->data[1] = 12;
  76.     temp->data[2] = 45;
  77.     insert(temp,34,4);
  78.     for(int i = 0; i < 4; i++)
  79.         cout << temp->data[i] << endl;
  80.  
  81.     cout << "benim  " << temp->pointer[0] <<endl;
  82.  
  83.     /*cout << sizeof(temp->data) << endl;
  84.     cout << length(temp->data) << endl;
  85.     cout << temp->data[0] << endl;
  86.     cout << temp->data[1] << endl;*/
  87.     return 0;
  88.  
  89.  
  90. }
  91.  
Thank you very much for your helps.
Oct 31 '08 #1
13 2647
AmeL
15
Could you please put the code bracket around your code for readability; and write us the error message which compiler produce ( with line number ) to make us easy to solve your problem, if that is a syntax error ?
Nov 1 '08 #2
archonmagnus
113 100+
hi,
However, there is a problem that i encountered which is I cannot store the address of an array element in an another array element.
I'm not sure what you mean by your statement. When I compile your code (using GCC version 4.1.2), I get the following output:
Expand|Select|Wrap|Line Numbers
  1. 0x804a068
  2. 3
  3. 12
  4. 34
  5. 45
  6. benim 134520936
  7.  
In your code you have the following:
Expand|Select|Wrap|Line Numbers
  1. // This prints: "0x804a068"
  2. cout << &temp2->data[0] << endl;
  3. temp->pointer[0] = (int)(&temp2->data[0]);
  4. ...
  5. // This prints: "benim 134520936"
  6. cout << "benim " << temp->pointer[0] <<endl;
  7.  
The observant reader will note that 134520936_(Dec)=0x804a068_(Hex). So it seems you are correctly storing the address of an array element into another element. Am I understanding your inquiry correctly?

To make the comparison a bit easier, you could have used the lines:
Expand|Select|Wrap|Line Numbers
  1. // This prints: "0x804a068"
  2. cout << &temp2->data[0] << endl;
  3. temp->pointer[0] = (int)(&temp2->data[0]);
  4. ...
  5. // This prints: "benim 0x804a068"
  6. cout << "benim 0x" << hex << temp->pointer[0] <<endl;
  7.  
Nov 1 '08 #3
Could you please put the code bracket around your code for readability; and write us the error message which compiler produce ( with line number ) to make us easy to solve your problem, if that is a syntax error ?
Ok I will. But there is no error messages. The problem is cannot getting the address of desired element correctly.
Expand|Select|Wrap|Line Numbers
  1. #include<iostream> #include<stdio.h> #include<stdlib.h> using namespace std; #define length(a) (sizeof a / sizeof a[0]) class Node{ public:     int count;     int leaf;     int *data;     int *pointer;     Node(int a){         leaf = 1;         count = 0;         data = new int[a];         pointer = new int[a+1];     } }; void insert(Node *node, int data, int line){     Node *temp = new Node(line);     temp = node;     int i = 0;     if(temp->leaf == 1){         if(temp->count != line){             while(temp->data[i] < data){                 i++;             }             for (int j = line; j > i; j--){                 temp->data[j] = temp->data[j - 1];             }             temp->data[i] = data;             temp->count++;         }         else{             Node *temp2 = new Node(line);             Node *temp3 = new Node(line);             //temp->pointer[0] = &(temp2->data[0]);             //temp->pointer[1] = &(temp3->data[0]);             for(int i = 0; i < 2; i++){                 temp2->data[i] = temp->data[i];             }             for(int i = 2; i < 5; i++){                 temp3->data[i] = temp->data[i];             }             for(int i = 0; i < 4; i++){                 temp->data[i] = 0;             }             temp->data[1]=temp3->data[1];         }     } } void deneme1(){     int a[3];     int *b[4];     b[1] = &(a[1]);     cout << b[1] << endl;     cout << &(a[1]) << endl; } int main(){     Node *temp = new Node(4);     Node *temp2 = new Node(4);     temp2->data[0] = 2;     cout << &temp2->data[0] << endl;     temp->pointer[0] = (int)(&temp2->data[0]);     //long x = &temp2->data[0];     //temp->pointer[0] = &temp2->data[0];     temp->data[0] = 3;     temp->data[1] = 12;     temp->data[2] = 45;     insert(temp,34,4);     for(int i = 0; i < 4; i++)         cout << temp->data[i] << endl;     cout << "benim  " << temp->pointer[0] <<endl;     cout << "benim 00" << hex << temp->pointer[0] <<endl;     cout << *&temp2->data[0] << endl;     /*cout << sizeof(temp->data) << endl;     cout << length(temp->data) << endl;     cout << temp->data[0] << endl;     cout << temp->data[1] << endl;*/     deneme1();     return 0; }
In the line "temp->pointer[0] = (int)(&temp2->data[0]);"
thank you
Nov 1 '08 #4
I'm not sure what you mean by your statement. When I compile your code (using GCC version 4.1.2), I get the following output:
Expand|Select|Wrap|Line Numbers
  1. 0x804a068
  2. 3
  3. 12
  4. 34
  5. 45
  6. benim 134520936
  7.  
In your code you have the following:
Expand|Select|Wrap|Line Numbers
  1. // This prints: "0x804a068"
  2. cout << &temp2->data[0] << endl;
  3. temp->pointer[0] = (int)(&temp2->data[0]);
  4. ...
  5. // This prints: "benim 134520936"
  6. cout << "benim " << temp->pointer[0] <<endl;
  7.  
The observant reader will note that 134520936_(Dec)=0x804a068_(Hex). So it seems you are correctly storing the address of an array element into another element. Am I understanding your inquiry correctly?

To make the comparison a bit easier, you could have used the lines:
Expand|Select|Wrap|Line Numbers
  1. // This prints: "0x804a068"
  2. cout << &temp2->data[0] << endl;
  3. temp->pointer[0] = (int)(&temp2->data[0]);
  4. ...
  5. // This prints: "benim 0x804a068"
  6. cout << "benim 0x" << hex << temp->pointer[0] <<endl;
  7.  
first of thank you for your reply.
I have question about the "x". what is it for
for example there is an output that i generate.
000221D8
3
12
34
45
benim 139736
benim 0x221d8
2
in here 000221D8 is not same with the 0x221d8.
Thank you again for your helps.
Nov 1 '08 #5
I want to ask another thing. :)
For example and assume that in my code this line
Expand|Select|Wrap|Line Numbers
  1. temp->pointer[0] = (int)(&temp2->data[0]);
get the address of the temp2->data[0] to the temp->pointer[0]
after getting the address of the element how can I get the actual value in that address I mean which statement will give it to me.
The second question is how can i store the address of the elements in the insert method.
In the code lines
temp->pointer[0] = &(temp2->data[0]);
temp->pointer[1] = &(temp3->data[0]);
thank you. very much.
I cannot put code tag around the codes because then there are &nbps which I cannot correct. Sorry for the inconvience.
Nov 1 '08 #6
JosAH
11,448 Expert 8TB
For example and assume that in my code this line
Expand|Select|Wrap|Line Numbers
  1. temp->pointer[0] = (int)(&temp2->data[0]);
get the address of the temp2->data[0] to the temp->pointer[0]
after getting the address of the element how can I get the actual value in that address
That is all very unsafe what you're doing there: it assumes that sizeof(int) ==
sizeof(your pointer type). Better define a small union type that can safely hold
both (one of each) type.

kind regards,

Jos
Nov 1 '08 #7
That is all very unsafe what you're doing there: it assumes that sizeof(int) ==
sizeof(your pointer type). Better define a small union type that can safely hold
both (one of each) type.

kind regards,

Jos
thank you very much. but i am beginner in c++.
Can you tell me how can i define a small union type.:)
if you can write that piece of code i will very happy:)
Thank you very much.
Nov 1 '08 #8
Expand|Select|Wrap|Line Numbers
  1.  void deneme1(){
  2.     int a[3];
  3.     int *b[4];
  4.     b[1] = &(a[1]);
  5.     cout << b[1] << endl;
  6.     cout << &(a[1]) << endl;

In here one of the array is an int array the other is pointer of array. So there is no problem while storig the addresses.
How can I make the pointer of array to an array to not get the errors "1>------ Build started: Project: BPlusTreeSecond, Configuration: Debug Win32 ------
1>Compiling...
1>BPlusTree.cpp
1>c:\users\asus\documents\visual studio 2008\projects\bplustreesecond\bplustreesecond\bplu stree.cpp(15) : error C2440: '=' : cannot convert from 'int *' to 'int'
1> There is no context in which this conversion is possible
1>c:\users\asus\documents\visual studio 2008\projects\bplustreesecond\bplustreesecond\bplu stree.cpp(25) : error C2109: subscript requires array or pointer type
1>c:\users\asus\documents\visual studio 2008\projects\bplustreesecond\bplustreesecond\bplu stree.cpp(25) : fatal error C1903: unable to recover from previous error(s); stopping compilation
1>Build log was saved at "file://c:\Users\asus\Documents\Visual Studio 2008\Projects\BPlusTreeSecond\BPlusTreeSecond\Debu g\BuildLog.htm"
1>BPlusTreeSecond - 3 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
".
Expand|Select|Wrap|Line Numbers
  1. class Node{
  2. public:
  3.     int count;
  4.     int leaf;
  5.     int data;
  6.     int *pointer;
  7.     Node(int a){
  8.         leaf = 1;
  9.         count = 0;
  10.         data = new int[a];
  11.         pointer = new int[a+1];
  12.     }
  13. };
In the above on the line 5 data is an ordinary array. it is not a pointer of array. But then there are lots of errors I encountered. Is there anyone who can propose a better solution.
Thank you very much.
Nov 1 '08 #9
Please some one help me...
I change my code so that I can store the address of the array elements in an array. However, there is another problem which i mentioned earlier is that I cannot reach the element that this address refers. This is my code:
Expand|Select|Wrap|Line Numbers
  1. #include<iostream>
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. using namespace std;
  5. #define length(a) (sizeof a / sizeof a[0])
  6. class Node{
  7. public:
  8.     int count;
  9.     int leaf;
  10.     int *data;
  11.     int** pointer;
  12.     Node(int a){
  13.         leaf = 1;
  14.         count = 0;
  15.         data = new int[a];
  16.         pointer = new int*[a+1];
  17.     }
  18. };
  19. void insert(Node *node, int data, int line){
  20.     Node *temp = new Node(line);
  21.     temp = node;
  22.     int i = 0;
  23.     if(temp->leaf == 1){
  24.         if(temp->count != line){
  25.             while(temp->data[i] < data){
  26.                 i++;
  27.             }
  28.             for (int j = line; j > i; j--){
  29.                 temp->data[j] = temp->data[j - 1];
  30.             }
  31.             temp->data[i] = data;
  32.             temp->count++;
  33.         }
  34.         else{
  35.             Node *temp2 = new Node(line);
  36.             Node *temp3 = new Node(line);
  37.             //temp->pointer[0] = (int)&(temp2->data);
  38.             //temp->pointer[1] = (int)&(temp3->data);
  39.             for(int i = 0; i < 2; i++){
  40.                 temp2->data[i] = temp->data[i];
  41.             }
  42.             for(int i = 2; i < 5; i++){
  43.                 temp3->data[i] = temp->data[i];
  44.             }
  45.             for(int i = 0; i < 4; i++){
  46.                 temp->data[i] = 0;
  47.             }
  48.             temp->data[1]=temp3->data[1];
  49.         }
  50.     }
  51. }
  52. void deneme1(){
  53.     int a[3];
  54.     int *b[4];
  55.     b[1] = &(a[1]);
  56.     cout << b[1] << endl;
  57.     cout << &(a[1]) << endl;
  58. }
  59. int main(){
  60.     Node *temp = new Node(4);
  61.     Node *temp2 = new Node(4);
  62.     temp2->data[0] = 2;
  63.     cout << &temp2->data << endl;
  64.     temp->pointer[0] = (int*)(&temp2->data);
  65.     //long x = &temp2->data[0];
  66.     //temp->pointer[0] = &temp2->data[0];
  67.     temp->data[0] = 3;
  68.     temp->data[1] = 12;
  69.     temp->data[2] = 45;
  70.     insert(temp,34,4);
  71.     for(int i = 0; i < 4; i++)
  72.         cout << temp->data[i] << endl;
  73.     cout << "benim  " << temp->pointer[0] <<endl;
  74.     //cout << "benim 0x" << hex << temp->pointer[0] <<endl;
  75.     cout << *&temp->pointer[0] << endl;
  76.     /*cout << sizeof(temp->data) << endl;
  77.     cout << length(temp->data) << endl;
  78.     cout << temp->data[0] << endl;
  79.     cout << temp->data[1] << endl;*/
  80.     //deneme1();
  81.     return 0;
  82. }
on line 11 i changed the code.
Please some one help me to fix this.
Thank you.
Nov 1 '08 #10
I changed the line 64
Expand|Select|Wrap|Line Numbers
  1. temp->pointer[0] = (int*)(&temp2->data[0]);
with this. Then there is no problem with accessing the first element of the temp2->data which is temp2->data[0].
From here how can i access to the second third and so on.Thank you.
Tekin
Nov 1 '08 #11
It is very interesting that i discovered that. If i use this code line
Expand|Select|Wrap|Line Numbers
  1. temp->pointer[0] = (int*)(&temp2->data[0]);
I got the output
008921A0
3
12
34
45
benim 008921D8
2

Which shows that the addresses are different. However, it gets the right element.
When I keep the line
Expand|Select|Wrap|Line Numbers
  1. temp->pointer[0] = (int*)(&temp2->data);
like this then I got this output
001921A0
3
12
34
45
benim 001921A0
1647064
which shows that address are correct but the data is not.
Anyone help
thank you.
Nov 1 '08 #12
Hi again,
I have a question. I cannot get the elements in the Node type.
Expand|Select|Wrap|Line Numbers
  1. #include<iostream>
  2. #include <algorithm>
  3. #include<stdio.h>
  4. #include<stdlib.h>
  5.  
  6.  
  7. using namespace std;
  8. #define length(a) (sizeof a / sizeof a[0])
  9. class Node{
  10. public:
  11.     int count;
  12.     int leaf;
  13.     int *data;
  14.     int** pointer;
  15.     Node(int a){
  16.         leaf = 1;
  17.         count = 0;
  18.         data = new int[a];
  19.         pointer = new int*[a+1];
  20.     }
  21. };
  22. Node* insert(Node *node, int data, int line){
  23.     Node *temp = new Node(line);
  24.     temp = node;
  25.     int i = 0;
  26.     int counter = 0;
  27.     if(temp->leaf == 0){
  28.         for(int l = 0; l < line; l++){
  29.             if (l == 0){
  30.                 if(temp->data[l] > data){
  31.                     counter = l;
  32.                     break;
  33.                 }
  34.             }
  35.             if(l = line-1){
  36.                 if(temp->data[line-1] < data){
  37.                     counter = l;
  38.                     break;
  39.                 }
  40.             }
  41.             if(l > 0 && l < line-1){
  42.                 if (temp->data[l] < data && temp->data[l+1] > data){
  43.                     counter = l;
  44.                     break;
  45.                 }
  46.             }
  47.         }
  48.         //temp->pointer[counter]
  49.         Node *childEntry = new Node(4);
  50.         //childEntry = *temp->pointer[counter];
  51.         insert(*temp->pointer[counter],data,line);
  52.     }
  53.     if(temp->leaf == 1){
  54.         if(temp->count != line){
  55.             while(temp->data[i] < data){
  56.                 i++;
  57.             }
  58.             /*if(i == 3){
  59.                 temp->data[i] = data;
  60.             }*/
  61.  
  62.             for (int j = line; j > i; j--){
  63.                 temp->data[j] = temp->data[j - 1];
  64.             }
  65.             temp->data[i] = data;
  66.  
  67.             temp->count++;
  68.             //cout << temp->count << endl;
  69.         }
  70.         else{
  71.             Node *temp2 = new Node(line);
  72.             Node *temp3 = new Node(line);
  73.             Node *temp4 = new Node(line+1);
  74.             temp->pointer[0] = (int*)&(temp2);
  75.             //cout << temp->pointer[0] << endl;
  76.             temp->pointer[1] = (int*)&(temp3);
  77.             //cout << temp->pointer[1] << endl;
  78.             for(int k = 0; k < line; k++){
  79.                 temp4->data[k] = temp->data[k];
  80.             }
  81.             temp4->data[line] = data;
  82.             unsigned int sizeOf = line + 1;
  83.             sort(temp4->data, temp4->data + sizeOf);
  84.             /*for(int i = 0; i < line + 1; i++)
  85.                 cout << temp4->data[i] << endl;*/
  86.             for(int l = 0; l < line/2; l++){
  87.                 temp2->data[l] = temp4->data[l];
  88.                 //cout << temp2->data[l] << endl;
  89.                 temp2->count++;
  90.             }
  91.             //cout << temp2->count << endl;
  92.             for(int l = line/2; l < line+1; l++){
  93.                 temp3->data[l-line/2] = temp4->data[l];
  94.                 //cout << temp3->data[l-2] << endl;
  95.                 temp3->count++;
  96.             }
  97.             //cout << temp3->count << endl;
  98.             for(int l = 0; l < line; l++){
  99.                 temp->data[l] = 0;
  100.                 temp->count--;
  101.             }
  102.             temp->data[0]=temp4->data[line/2 + 1];
  103.             temp->count++;
  104.             delete temp4;
  105.             temp->leaf = 0;
  106.             temp2->leaf = 1;
  107.             temp3->leaf = 1;
  108.             //cout<<temp->count << endl;
  109.         }
  110.     }
  111.     node = temp;
  112.     return node;
  113. }
  114. /*void deneme1(){
  115.     int a[3];
  116.     int *b[4];
  117.     b[1] = &(a[1]);
  118.     cout << b[1] << endl;
  119.     cout << &(a[1]) << endl;
  120. }*/
  121. int main(){
  122.     Node *temp = new Node(4);
  123.     Node *temp2 = new Node(4);
  124.     Node *temp3 = new Node(4);
  125.     Node *temp4 = new Node(4);
  126.     temp2->data[0] = 2;
  127.     temp2->data[1] = 6768;
  128.     cout << &temp2 << endl;
  129.     temp->pointer[0] = (int*)(&temp2);
  130.     //&temp4 = temp->pointer[0];
  131.     cout << *&temp->pointer[0] << endl;
  132.     //temp4 = (temp->pointer[0]);
  133.     //cout << temp4->data[0] << endl;
  134.     temp->data[0] = 3;
  135.     temp->data[1] = 12;
  136.     temp->data[2] = 45;
  137.     //insert(temp,34,4);
  138.     temp->count = 3;
  139.     temp3 = insert(temp,1,4);
  140.     temp = insert(temp3,6,4);
  141.     //for(int i = 0; i < 4; i++)
  142.         //cout << temp3->data[i] << endl;
  143.     //cout << "benim  " << temp->pointer[0] <<endl;
  144.     //cout << "benim 0x" << hex << temp->pointer[0] <<endl;
  145.     //cout << *(temp->pointer[0] + 0) << endl;
  146.     /*cout << sizeof(temp->data) << endl;
  147.     cout << length(temp->data) << endl;
  148.     cout << temp->data[0] << endl;
  149.     cout << temp->data[1] << endl;*/
  150.     //deneme1();
  151.     return 0;
  152. }
On the line 51, i tried to get the node by giving the address of that node.
This action is going on lines 49,50,51. However, it does not accept it. So I am waiting your help about this problem.
I have a proposal about that but I cannot implement it so i think that you can help me about that. In the Node class there is a pointer array. If we can change it to hold the Node objects then the problem will be solved.
Thank you very much for your helps.
Nov 2 '08 #13
why not somebody help about this problem????
Nov 2 '08 #14

Sign in to post your reply or Sign up for a free account.

Similar topics

9
by: F. Da Costa | last post by:
Hi, Does anybody know why IE5+ does *not* honour array objects (like a table) across a session? Example: Frame A contains a var tableVar which is set via form Frame B (on init) using...
3
by: Kai Wu | last post by:
Hello, It turns out that STL vector does not assure the constness of its stored element address (memory location), i guess by the time it dynamicly allocates new memory as new element get...
9
by: Luke Wu | last post by:
Hello, I'm having some problems understanding 2 dimensional arrays. My problem relates to the following code: #include <stdio.h> #define M 3 #define N 3
12
by: arkobose | last post by:
my earlier post titled: "How to input strings of any lengths into arrays of type: char *array ?" seems to have created a confusion. therefore i paraphrase my problem below. consider the...
33
by: baumann.Pan | last post by:
hi all, i want to get the address of buf, which defined as char buf = "abcde"; so can call strsep(address of buf, pointer to token);
10
by: | last post by:
If I have an array of int: int array; I suppose the correct way to clear it using memset() would be: memset(array, 0, 8 * sizeof(int)); However, I've seen the following in a piece of code:...
11
by: mwebel | last post by:
Hi, i had this problem before (posted here and solved it then) now i have the same problem but more complicated and general... basically i want to store the adress of a istream in a char* among...
17
by: =?Utf-8?B?U2hhcm9u?= | last post by:
Hi Gurus, I need to transfer a jagged array of byte by reference to unmanaged function, The unmanaged code should changed the values of the array, and when the unmanaged function returns I need...
36
by: Julienne Walker | last post by:
Ignoring implementation details and strictly following the C99 standard in terms of semantics, is there anything fundamentally flawed with describing the use of a (non-inline) function as an...
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: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
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: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
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
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...
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,...

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.