Benim txt dosyam çok büyük bu yüzden bu kısmını attı,burada görülen "TUBO120X120X120X8" verisi yerine "TUBE120*8" yazmak istiyorum.
ilk önce şu hatayı aldım: First argument must be a string array, character vector, or cell array of character vectors.
sonra cell'e çevirmeye çalıştım fileID' yi sonra da şu hatayı aldım: Conversion to cellstr from double is not possible.
Ne yaptıysam yazamadım.Yardımcı olur musunuz.
Teşekkürler…
Düzeltme:
function [] = dosyaDegistir(mevcut_dosya, eski_yazi, yeni_yazi, yeni_dosya)
mevcut_dosya_icerik = extractFileText(mevcut_dosya);
guncellenmis_icerik = replace(mevcut_dosya_icerik, eski_yazi, yeni_yazi);
writematrix(guncellenmis_icerik , yeni_dosya);
end
Burada dosyanızı nasıl yüklediğiniz önemli sanırım. İnternetten şöyle bir örnek buldum:
fid = fopen('dosyaadi.txt','r'); %burada dosyaadi kısmını dosyanızın ismiyle değiştireceksiniz f=fread(fid,'*char')';
Ondan sonra bu şekilde yüklenmiş dosyada bahsettiğiniz değişikliği yapmak için:
f = strrep(f,' 'TUBO120X120X120X8', 'TUBE120*8');
komutunu kullanabilirsiniz. İşe yarar mı emin değilim ama bulduğum kaynak linki de aşağıda:
Metni okumak için daha güncel extractFileText ve değiştirmek için replace fonksiyonları da kullanılabilir. Ayrca, dosya içeriği tablarla ayrılmış bir tablo gibi görünüyor, öyleyse dosyayı düz metin olarak okumak yerine readtable ile okuyabilir ve sadece ilki sutunda değişiklik yapabilirsiniz.
Matlab arayüzünde, metin dosyasına sağ tıklayıp "Import Data…"ya basarsanız, readtable kullanımı da daha pratik olacaktır.
Hakan Bey sizin yazdığınız gibi yapmaya çalıştım ama yinede olmadı.
Çağlar bey Import Data kısmından yaptım bir kısmını ama WORKSPACE 'te oluşan change ı bir türlü txt olarak yazdıramadım.Dün den beri yazdıklarınız üzerinde çalıştım.Yardımlarınız için teşekkür ederim.WORKSPACE den nasıl yazdıracağımı bilmiyorum.Herhangi bir fikriniz varsa paylaşır mısnız?
Buraya yüklenmiyor sanırım. Wetransfer falan olabilir.
Bu arada, değişimlerin hepsini elle mi yazacaksınız yoksa bir mantığı olacak mı? “TUBO120X120X120X8” verisi yerine “TUBE120*8” demişsiniz, ama altta “TUBO120X120X120X10” da var.
function [] = dosyaDegistir(mevcut_dosya, eski_yazi, yeni_yazi, yeni_dosya)
mevcut_dosya_icerik = extractFileText(mevcut_dosya);
guncellenmis_icerik = replace(mevcut_dosya_icerik, eski_yazi, yeni_yazi);
writematrix(yeni_yazi, yeni_dosya);
end
Çağlar Bey, yazdığınız fonksiyon çok işime yaradı.Bir kaç değişiklikle kullandım.Yardımlarınız için çok teşekkür ederim.