Merhaba, elimde nokta isimlerinden oluşan 1 den 10 bine kadar giden xlsx uzantılı dosyalarım var bu excel olan dosyalarımı doğru kabul ediyoruz. Aynı zamanda yine aynı sayıda olacak şekilde 1 den 10 bine kadar giden pdf uzantılı dosyalarım var. Yapmak istediğim excel ki nokta isimlerini pdf uzantılı nokta isimleri ile karşılaştırıp eksik, veya aynı noktadan birden fazla pdf dosyası varsa bulup teşhis etmek. Bunu matlab de nasıl yazabilirim. örnek olsun diye hem excel in hem de pdf dosyalarının görüntülerini yüklüyorum. Yardımcı olursanız sevinirim.
readtable fonksiyonu ile .txt içeriğini bir matris olarak alabilirsiniz.
Merhaba,
Ne yapmak isteğinizi tam anlayamadım. Sadece dosya isimlerini mi karşılaştırmak istiyorsunuz? Örnek verebilir misiniz?
Evet içeriğine girmeyecez sadece dosya isimleri excel deki dosya isimlerinin aynısı pdf lerde var mı
Merhaba,
Aşağıdaki örneği inceleyebilirsiniz.
clc; clear; close all; dizin = pwd; % Varolan dizin txtler = dir(fullfile(dizin, '*.txt')); %Dizindeki txt uzantili dosyalari bulalim pdfler = dir(fullfile(dizin, '*.pdf')); %Dizindeki pdf uzantili dosyalari bulalim for i = 1: length(txtler) a = length(txtler(i).name); % her bir txt dosyasinin karakter uzunlugu Bul(i).isimler = txtler(i).name; % Aranan her dosyanin adini kaydediyoruz Bul(i).Konum = find(contains(pdfler.name,txtler(i).name(1:a-4))); % karakter uzunlugundan 4 cikarttik yani uzantiyi attik, txt dosyasini pdfler icinde arattik % Arama sonucu bulunan dosya konumuni yazdirdik end
yazdığınız kodda pdf dosyalarını buluyor txt dosyalarını da bulunuyor ancak karşılaştırma kısmında hata veriyor find(contains) kısmında hata veriyor çalıştırınca hata veriyor bir yanlışlık mı var kodda bakabilirmisiniz.
Error using contains
Unrecognized parameter name. Parameter name must be 'İgnoreCase'
diye hata verip kodun çalışmasını durduruyor. ben örnek olarak 5 adet pdf 5 adet txt dosyası aynı isimde olacak şekilde hazırladım. Yazdığınız kodu çalıştırdım dediğim gibi txt dosyalarının ve pdf dosyalarının isimlerini buluyor ancak karşılaştırmayı yapamayıp yukarıda yazdığım kod hatasını veriyor. Bakabilirseniz iyi olur.
Aşağıdaki gibi bir deneyin.
clc; clear; close all; dizin = pwd; % Varolan dizin txtler = dir(fullfile(dizin, '*.txt')); %Dizindeki txt uzantili dosyalari bulalim pdfler = dir(fullfile(dizin, '*.pdf')); %Dizindeki pdf uzantili dosyalari bulalim for i = 1: length(txtler) a = length(txtler(i).name); % her bir txt dosyasinin karakter uzunlugu Bul(i).isimler = txtler(i).name; % Aranan her dosyanin adini kaydediyoruz Bul(i).Konum = find(contains({pdfler.name},{txtler(i).name(1:a-4)})); % karakter uzunlugundan 4 cikarttik yani uzantiyi attik, txt dosyasini pdfler icinde arattik % Arama sonucu bulunan dosya konumuni yazdirdik end
Teşekkür ederim sonuç bulundu ama size gönderdiğim ekrandaki gibi xlsx lerde ki isimler pdf lerde olmayınca boş karakter koyuyor ben bu boş karakterleri koyulan satır numaralarını fprintf ile yazdırmak istiyorum bulamadım yardımcı olursanız iyi olur
Aşağıdaki örneğe bakabilirsiniz:
clc; clear A = {[4,5];[6,8];7; 6;[];9;[8,9];[ ];[ ];[ ]} % Ornek Matrisimiz bul = find(cellfun(@isempty,A)); %Bos olan satirlarin index numarasi
Ben dosya isimlerini gönderdiğim görseldeki gibi bu şekilde bir txt altında topladım yine görselde görüldüğü üzere pdf dosyaları da mevcut matlab de txt dosyasının içindeki nokta isimlerini pdf lerdeki dosya isimleri ile karşılaştırıp txt dosyası içindeki isimlerden pdf lerde olmayan varsa bulmak istiyorum bunu nasıl yapabilirim yardımcı olursanız sevinirim
readtable komutu ile txt dosyasını matrise çevirdim. Ancak ilk yazdığınız pdfler in ayrı txtlerin ayrı ayrı olduğu kodu bu sefer çalıştırmadı. Hata verdi. Orada txt dosyaları ve pdf dosyaları ayrı ayrı idi. Şimdi ise pdfler yine ayrı ama txt nokta isimleri tek bi dosya içerisinde olduğu için hata veriyor. Bunu nasıl düzeltebilirim. Elimde nokta isimlerinin bulunduğu bir txt dosyası var ve o nokta isimlerden oluşan pdf dosyaları var, Bu txt dosyası içindeki nokta isimlerini kullanıp aynı nokta ismine dair pdf dosyalarının olup olmadığını kontrol etmek istiyorum. Bunu matlab de nasıl yazabilirim. ?