sterretje:
Which is not possible on AVR based Arduinos without modifying the bootloader or other tricks. And flash has an estimated life cycle if 10000 writes.
You may have misunderstood what I meant. I was not suggesting to modify the flash, but to load the strings from flash byte-by-byte and modify the individual bytes in RAM before using them. If OP wanted to be able to combine different strings in different order, he could:
void print_PSTR(byte index)
{
for (i = 0; i < strlen; i++)
{
byte pstr_byte = load_PSTR_BYTE(STR[index][i]);
//Modify the byte ont-the-fly
print(pstr_byte);
}
}
void combine_PSTR(byte index1, byte index2)
{
print_PSTR(index1);
print_PSTR(index2);
}
And so on..