Dúvida de como atribuir a uma variável um arquivo txt

Estou desenvolvendo um controle de ar-condicionado universal, e estou armazenando os códigos do botões dos controles em um arquivo txt, dentro do cartão SD, mas quero atribuir esses códigos dentro do arquivo a uma variável char ou int, pra que possa chama-las posteriormente e enviar ao ar-condicionado. Estou utilizando o código IRrecvDumpV2 para receber o código, e o IRsendRawDemo para enviar, quero atribuir os arquivos as variáveis raw e codraw. Já tentei antes, mais acho que o formato das variáveis não são compatíveis com o ASCII do arquivo txt. pós exibia números ao meu ver aleatórios e repetitivos.
Por favor quem puder me ajudar. Segue o código de envio onde ele está recebendo as variáveis para envio. unsigned int irSignal[raw] = {codraw};

Veja: https://snippets-r-us.com/
Poste o seu código completo, dentro de tags [ code][ /code], assim como descrito em How to use this forum - please read. (em especial item 7)

segue o código, estão disponíveis para download logo abaixo os 2 arquivos:

/*
 * IRremote: IRsendRawDemo - demonstrates sending IR codes with sendRaw
 * An IR LED must be connected to Arduino PWM pin 3.
 * Version 0.1 July, 2009
 * Copyright 2009 Ken Shirriff
 * http://arcfn.com
 *
 * IRsendRawDemo - added by AnalysIR (via www.AnalysIR.com), 24 August 2015
 *
 * This example shows how to send a RAW signal using the IRremote library.
 * The example signal is actually a 32 bit NEC signal.
 * Remote Control button: LGTV Power On/Off. 
 * Hex Value: 0x20DF10EF, 32 bits
 * 
 * It is more efficient to use the sendNEC function to send NEC signals. 
 * Use of sendRaw here, serves only as an example of using the function.
 * 
 */


#include <IRremote.h>
#include <SD.h>
#include <String.h>
#include "LiquidCrystal.h"
#include "Limits.h"
#include <SPI.h>

//Criando um objeto da classe LiquidCrystal e 
//inicializando com os pinos da interface.
LiquidCrystal lcd(9, 8, 5, 4, 3, 2);
IRsend irsend;
File MyFile;
File MyFile2;
char t;
String tes = "";
char teste[2000];
long raw = 0;
long codraw = 0;

void setup(){
lcd.begin(16, 2);
SPI.begin(); 
Serial.begin(9600);
lcd.setCursor(3, 0);
lcd.print("Initializing SD card...");
//para funcionar o cartão SD, deve estar ligado nos pinos digitais 11, 12 e 13 (na maioria das placas Arduino) ou 50, 51 e 46 (Arduino Mega).
  if (!SD.begin()) {//inicia a comunicação com o cartão SD // se for necessário coloque a inicialização da comunicação fora do condicional "SE"
  lcd.println("initialization failed!");// se a conexão não estiver em uso mostrára essa mensagem      //checa se o cartão está OK
  while (1);
     }
     lcd.setCursor(3, 1);
  lcd.println("initialization done.");
  //delay(1000);
  // essa mensagem será mosrada se o cartão SD; for lido
 }


void loop() {
lcd.clear(); 
MyFile =SD.open("copia.txt");
MyFile2 =SD.open("copia2.txt");

if (MyFile2) {
    while (MyFile2.available()) {
        char t = MyFile2.read();
        Serial.print(t);
    }
}
//char teste[] = MyFile.read();
//long raw  = MyFile.read();
//long codraw = MyFile2.read();
//Serial.print(raw);
//Serial.print(codraw);
Serial.print(t);
//Serial.write(MyFile.read());
//Serial.write(MyFile2.read());
//lcd.setCursor(3, 0);
//lcd.setCursor(3, 0);
//lcd.setCursor(3, 1);
//lcd.print("kallyuonogucharas");
//delay(5000);
//String teste = String(t);
//Serial.print(teste);
//srt = t;
//Serial.print(srt);

int khz = 38; 
  // 38kHz carrier frequency for the NEC protocol
 // MyFile = SD.open("Copia.txt");
 // MyFile = SD.open("Copia2.txt");
unsigned int irSignal[raw] = {codraw};  
irsend.sendRaw(irSignal, sizeof(irSignal) / sizeof(irSignal[0]), khz); //Note the approach used to automatically calculate the size of the array.
 
delay(5000);
//In this example, the signal will be repeated every 5 seconds, approximately.
//MyFile.close()
MyFile2.close();
MyFile.close();
for (int posicao = 0; posicao < 3; posicao++)
  {
    lcd.scrollDisplayLeft();
    delay(300);
  }
   
  //Rolagem para a direita
  for (int posicao = 0; posicao < 6; posicao++)
  {
    lcd.scrollDisplayRight();
    delay(300);
  }
};

recebe_raw.ino (3.12 KB)

envia_raw.ino (6.32 KB)

Na linha 40:

char teste[2000];

Este vetor ocupa bastante memória, qual Arduino está usando?

Na linha 41 e 42 você declara e define a variável raw:

long raw = 0;
long codraw = 0;

Note que em nenhum lugar do seu programa você atribui um valor diferente de 0 a estas variáveis.

Na linha 95 você declara e define a variável irSignal usando as variáveis acima:

unsigned int irSignal[raw] = {codraw};

Esta linha está errada, pois como raw = 0, você está declarando um vetor com tamanho 0, então não pode atribuí-lo nada.

Portanto, a linha 96 tem comportamento indefinido:

irsend.sendRaw(irSignal, sizeof(irSignal) / sizeof(irSignal[0]), khz);

Não vejo em nenhum lugar no código onde preenche a varíavel irSignal com valores obtido do cartão SD.

Pode tentar subsituir esta parte, a partir da linha 67:

if (MyFile2) {
    while (MyFile2.available()) {
        char t = MyFile2.read();
        Serial.print(t);
    }
}

Por algo assim:

if(MyFile2){
    const size_t tamanho = MyFile2.size();
    
    uint8_t irSignal[tamanho];
    
    for(size_t i = 0; i < tamanho; ++i){
        irSignal[i] = MyFile2.read();
    }
    
    irsend.sendRaw(irSignal, tamanho, khz);
}

Seu código tem muitas linhas comentadas, fica difícil distinguir o que é util.
Descomente ou remova as linhas inúteis.