rename single .txt file with changing seed number

2 visualizzazioni (ultimi 30 giorni)
I've created a GUI with App Designer. It's basic, four drop down menus with descriptors, and a single button that renames a .txt file
The file i'm trying to rename is spit out by a data aquisition software that names the file with a prefix and a seed number. For example:
"NewTest00001.txt", then the next save spits out "NewTest00002.txt", ecetera.
The code i've written within the ButtonPushed function is as follows:
app.DropDown1.Value;
app.DropDown2.Value;
app.DropDown3.Value;
app.DropDown4.Value;
NewTest='C:\Users\PC\Desktop\TestData\NewTest00001.txt';
movefile(NewTest, strcat('C:\Users\PC\Desktop\TestData\Renamed\',...
app.DropDown1.Value,app.DropDown2.Value,app.DropDown3.Value,...
app.DropDown4,'.txt'));
Which works when the file name matches, the problem is that the seed changes after every save. I've tried changing the code to
NewTest='C:\Users\PC\Desktop\TestData\*.txt';
But that creates a new folder within the "Renamed" folder due to the * which interprets it as a folder instead of a text file.
There's got to be a simple solution i'm unaware of where the code reads in the text file like "<NewTest><LiterallyAnyNumber>.txt" and renames it.
Essentially I run test, save test as "NewTest#####.txt", Press the rename button in my GUI, repeat.

Risposta accettata

Chris
Chris il 22 Set 2022
Modificato: Chris il 22 Set 2022
Do you know the seed?
testSeed = 454;
NewTest = strcat('C:\Users\PC\Desktop\TestData', num2str(testSeed), '.txt')
NewTest = 'C:\Users\PC\Desktop\TestData454.txt'
If you want the same number of digits in the seed each time:
testStr = sprintf('%05d',testSeed);
NewerTest = strcat('C:\Users\PC\Desktop\TestData', testStr, '.txt')
NewerTest = 'C:\Users\PC\Desktop\TestData00454.txt'
  5 Commenti
Garrett Craig Porter
Garrett Craig Porter il 23 Set 2022
Modificato: Garrett Craig Porter il 23 Set 2022
Thank you so much Chris! I was able to get the proper execution with the following code. I didn't even think to approach the code to sort the files that way and just grab it by date.
app.DropDown1.Value;
app.DropDown2.Value;
app.DropDown3.Value;
app.DropDown4.Value;
d=dir('C:\Users\PC\Desktop\TestData\*.txt');
[~,I]=sort({d(:).date});
testSeed=d(I(end)).name;
NewTest=(strcat('C:\Users\PC\Desktop\TestData\',testSeed));
movefile(NewTest, strcat('C:\Users\PC\Desktop\TestData\Renamed\',...
app.DropDown1.Value,app.DropDown2.Value,app.DropDown3.Value,...
app.DropDown4,'.txt'));
Chris
Chris il 23 Set 2022
@Garrett Craig Porter looks good, but I'm not sure the first four lines are doing anything.
They get the values in the dropdown menus, but they don't assign the values anywhere, nor print them to the display due to the presence of the semicolons. The code should run fine without those lines, I think.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Programming in Help Center e File Exchange

Prodotti


Release

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by