CyberChaos(さいばかおす)

プログラミング言語、トランスパイラ、RPA、ChatGPT、データマイニング、リバースエンジニアリングのための忘備録

プロシージャとは何ぞや?

2023-05-07 10:48:19 | VBA
Wikipediaより引用。
プロシージャ (procedure)とは、プログラミングにおいて複数の処理を一つにまとめたものをいう。手続きとするのが定訳である。一連の処理を意味を持った一まとまりにすることで、再利用性が高まり、プログラム中に繰り返して現れる処理を1ヶ所で記述でき、プログラムの保守、管理を容易にする。

繰り返し利用されることから、ルーチンとも言う。呼び出し関係は通常階層構造をなし、その最上位にある、プログラム全体のエントリーポイントを含むルーチンをメインルーチン、呼び出されるものをサブルーチンと言う。また、関数と呼ばれることもある(通常、数学における関数とは違ったものであるので、注意が必要である)。

プログラミング言語により、プロシージャのような構文の分類や呼称はさまざまである。詳細はサブルーチンの記事を参照のこと。





PDFコンバーターアプリをPythonで作ってみた

2023-05-07 10:37:08 | python
PDF Converter App

任意のファイルを読み込んでPDF化して保存するアプリをTKinterライブラリーを用いたPythonコードで書いて

以下は、Tkinterライブラリを使用して、ユーザーが選択したファイルを読み込み、PDF形式で保存するPythonアプリケーションの例です。

python
Copy code
import tkinter as tk
from tkinter import filedialog
import os
from fpdf import FPDF


class PDFConverter:
def __init__(self, master):
self.master = master
master.title("PDF Converter")

# ラベル
self.label = tk.Label(master, text="PDFに変換するファイルを選択してください。")
self.label.pack()

# ファイル選択ボタン
self.select_button = tk.Button(master, text="ファイルを選択", command=self.select_file)
self.select_button.pack()

# 変換ボタン
self.convert_button = tk.Button(master, text="変換", state=tk.DISABLED, command=self.convert_file)
self.convert_button.pack()

# メッセージラベル
self.message = tk.Label(master, text="")
self.message.pack()

def select_file(self):
# ファイル選択ダイアログを表示
file_path = filedialog.askopenfilename()

if file_path:
# 選択されたファイルがPDFでなければ変換ボタンを有効化
if os.path.splitext(file_path)[1] != ".pdf":
self.convert_button.config(state=tk.NORMAL)
else:
self.message.config(text="選択されたファイルは既にPDF形式です。")
else:
self.message.config(text="ファイルが選択されていません。")

# 選択されたファイルのパスを保存
self.file_path = file_path

def convert_file(self):
# PDFファイルの作成
pdf = FPDF()
pdf.add_page()
pdf.set_font("Arial", size=12)
with open(self.file_path, "rb") as f:
text = f.read()
pdf.cell(200, 10, txt=text.decode("utf-8"), ln=1)
pdf_path = os.path.splitext(self.file_path)[0] + ".pdf"
pdf.output(pdf_path)

self.message.config(text=f"変換が完了しました。PDFファイルを{pdf_path}に保存しました。")


root = tk.Tk()
app = PDFConverter(root)
root.mainloop()
このアプリは、ユーザーがファイルを選択した後、ファイルがPDF形式でない場合は変換ボタンを有効化します。変換ボタンをクリックすると、選択されたファイルがPDFに変換され、元のファイルと同じ場所に保存されます。






…失敗したようだ。
Pydroidでやるとダメなのかどうかは知らんが。
ファイルを選択して読み込ませるところで何にも起きなくなり、Openボタンを押しても変換ボタンを押しても反応しなかった。

PCで実行しても同じ結果となった。
ちなみにPythonのIDLEではFPDFライブラリーのインストールに失敗したので、Anacondaのプロンプトでpip install --upgrade FPDFとコマンドを入力してようやくインストールできた。スパイダーで実行しても動かなかった。

BingAlではちょっと違うソースコードを提示されたが、やはり動かなかった。