私はしばらくの間、ESP32 と SPIFFS を使用しています。私のプロジェクトでは、ユーザーが必要とするときに、ファイル内の特定の行からコンテンツを変更する必要があります。ファイルは常に同じ形式で保存されるため、どの行が変更されるかがわかります。
私の現在のファイルは次のように保存されています:
Content inside file:
DeviceNmae
test@test.com.br
123456
button to read
uid from databa
internet ssid
internet pass
ユーザーがアプリケーションでインターネット ssid を変更すると、私の esp32 はデータベースからコンテンツを読み取り、変更を検出します。入ってくる変更を保存し、行を更新します。
たとえば、データを「int ssid now」に変更すると、データベースは「internet ssid」を読み取って「int ssid now」に変更します。その行だけからコンテンツを更新したいのですが、何も見つかりませんでした。更新しても解決策が見つからない場合は、ファイルからすべてのコンテンツを削除し、その行を変更するためだけに新しいファイルを作成する必要があります。
次のようにデータを追加します。
void funcClass::append_data(String funcName, char Text[]) {
file = SPIFFS.open("/esp_name.txt", FILE_APPEND);
while (connection_state == 1 and funcName == ""){
if (connection_state == 1 and funcName == "" and stop_loop == 0){
for (int i = 0; i < strlen(Text); i++){
char c = Text[i];
SerialBT.write(c);
}
SerialBT.write('\n');
}
stop_loop = 1;
if (SerialBT.available()){
while (SerialBT.available()) {
insert_chars = SerialBT.read();
funcName = String(funcName + insert_chars);
}
stop_loop = 0;
}
}
if (file.print(funcName)){
Serial.print("data was added: ");
Serial.println(funcName);
}else{
Serial.println("data was not added");
return;
}
file.close();
}
``