Soru sorExcel ile Pdf Dosyalarını Karşılaştırma
matlab.m tarafından 2 yıl önce soruldu

 
 

 

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.

12 Cevap
En iyi cevap
sayginer Yönetici tarafından 2 yıl önce cevaplandı

readtable fonksiyonu ile .txt içeriğini bir matris olarak alabilirsiniz.

sayginer Yönetici tarafından 2 yıl önce cevaplandı

Merhaba,
Ne yapmak isteğinizi tam anlayamadım. Sadece dosya isimlerini mi karşılaştırmak istiyorsunuz? Örnek verebilir misiniz?

matlab.m tarafından 2 yıl önce cevaplandı

Evet içeriğine girmeyecez sadece dosya isimleri excel deki dosya isimlerinin aynısı pdf lerde var mı 

sayginer Yönetici tarafından 2 yıl önce cevaplandı

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

matlab.m tarafından 2 yıl önce cevaplandı

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.

sayginer Yönetici tarafından 2 yıl önce cevaplandı

Ne hatasi aliyorsunuz?

matlab.m tarafından 2 yıl önce cevaplandı

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. 

sayginer Yönetici tarafından 2 yıl önce cevaplandı

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
matlab.m tarafından 2 yıl önce cevaplandı

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

sayginer Yönetici tarafından 2 yıl önce cevaplandı

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
matlab.m tarafından 2 yıl önce cevaplandı

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

matlab.m tarafından 2 yıl önce cevaplandı

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. ?