Unable to store AT command response from sim808 module

Hello everybody, I am trying to store the data from the command AT+CGNSINF to get latitude and longitude. However, any data is saved when I used "Number2[cc]=SIM808.read();"
Im using sim808 module with Arduino.

#include <SoftwareSerial.h>
#include <String.h>
#include<stdio.h>
#include<string.h>

SoftwareSerial SIM808(7, 8); //Seleccionamos los pines 7 como Rx y 8 como Tx
#define DEBUG true
  bool ini            = 0;
  String UID_DEVICE   = "8eb44eee-a377-4d77-bc0b-43f58696141a";
  char NumberCell[]   = "";
  char Number2[100]   = "";
  char Longitude[18]  = "";
  char Latitude[18]   = "";
  char Speed[18]      = "40"; //to-do : Calculo de velocidad
   String result;
  int cc=0;
  int ss=0;
  int tt=0;
  int ff=0;

void displaySIM(int wait){
  delay (wait);
  while (Serial.available() > 0){
        SIM808.write(Serial.read());
        delay(30);
  }
  delay(30);
  while (SIM808.available() > 0){
        Serial.write(SIM808.read());
        delay(30);
  }
}

void setup()
{
 pinMode(13, OUTPUT);
 SIM808.begin(19200);
 Serial.begin(19200);
 delay(100);
// Serial.println("El aparato se esta acomodando, prendiendo GPS y Celular y guevonaditas que necesita asi que espere");

 SIM808.println("AT");
 displaySIM(100);
  delay(300);
  SIM808.println("AT+CFUN=1");
  displaySIM(100);
  delay(300);
   SIM808.println("AT+CGPSPWR=1");
 displaySIM(100);
 delay(300);
    SIM808.println("AT+CMGF=1");
  displaySIM(100);
 delay(300);
 SIM808.println("AT+CGPSRST=0");
  displaySIM(100);
  delay(300);

}
void loop() {

  
  digitalWrite(13, HIGH); 
  delay(300);

  SIM808.println("AT+CGNSINF");
 
   
   displaySIM(100);

  delay (700);

  cc=0;
  ss=0;
  tt=0;
  ff=0;
 
       
  delay(300);
        
        
        Number2[cc]=SIM808.read();
          
          if((ss==3)&&(Number2[cc]!=',')){                  
            Longitude[tt]=Number2[cc];
            tt++; 
          }
         if((ss==4)&&(Number2[cc]!=',')){                  
           Latitude[ff]=Number2[cc];
           ff++;
         } 
         if(Number2[cc]==','){
            ss++;
         }
        delay(30);
        cc++;
 

  Serial.println("Number2: ");
  Serial.println(Number2);
    
  Serial.println("Longitude: ");
  Serial.println(Longitude);
  Serial.println("Latitude: ");
  Serial.println(Latitude); 

}

.

I attached the info that i get using serial monitor.
Thank you so much.

Your displaySIM() function consumes all the data sent by the SIM808 so there is nothing more to read.

+CGNSINF: 1,1,20191210204525.000,6.243792,-75.9904

It's interesting that this is a somewhat truncated response from what I see documented for the sim808 but it must be what your are getting with your module.

blh64 has pointed out your issue.

You need to read an entire response, and then store it and parse it. There are non blocking ways to do this but I'm not sure its of any value in your case, so use the .readBytes() function.

Try replace this

while (SIM808.available() > 0){
        Serial.write(SIM808.read());
        delay(30);
  }

with this

if(SIM808.available() > 0) //If there is stuff in the buffer
{
  char textMessage[100] = {};
  byte numChars = SIM808.readBytes(textMessage, 100);//.readBytes returns number read
  textMessage[numChars] = '\0';//null Terminator
  Serial.println(textMessage); // Print the new message
}

Once you can see the entire message you can work on storing it and parsing the lat and long into other variables. You will use strtok, so do some research on that function..