Tiếng AnhTiếng PhápTiếng Tây Ban Nha

Biểu tượng yêu thích OnWorks

perlform - Trực tuyến trên đám mây

Chạy perlform trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks trên Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

Đây là biểu mẫu lệnh có thể được chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


perlform - Các định dạng Perl

MÔ TẢ


Perl có một cơ chế giúp bạn tạo các báo cáo và biểu đồ đơn giản. Để tạo điều kiện thuận lợi cho việc này,
Perl giúp bạn mã hóa trang đầu ra của mình cho gần giống như khi nó được in ra. Nó
có thể theo dõi những thứ như có bao nhiêu dòng trên một trang, bạn đang ở trang nào, khi nào thì
tiêu đề trang in, v.v. Các từ khóa được mượn từ FORTRAN: định dạng() tuyên bố và
ghi () để thực hiện; xem các mục nhập của họ trong perlfunc. May mắn thay, bố cục nhiều hơn
dễ đọc, giống như tuyên bố SỬ DỤNG IN CỦA BASIC. Hãy coi nó như một người nghèo ăn trộm(1).

Các định dạng, như gói và chương trình con, được khai báo thay vì thực thi, vì vậy chúng có thể
xảy ra tại bất kỳ thời điểm nào trong chương trình của bạn. (Thông thường, tốt nhất là nên giữ tất cả chúng cùng nhau.)
Họ có không gian tên riêng của họ ngoài tất cả các "loại" khác trong Perl. Điều này có nghĩa rằng
nếu bạn có một hàm tên là "Foo", nó không giống với một định dạng có tên
"Ngu". Tuy nhiên, tên mặc định cho định dạng được liên kết với một bộ xử lý tệp nhất định là
giống như tên của bộ xử lý tệp. Do đó, định dạng mặc định cho STDOUT được đặt tên là
"STDOUT" và định dạng mặc định cho TEMP xử lý tệp được đặt tên là "TEMP". Họ chỉ nhìn
tương tự. Họ không.

Định dạng bản ghi đầu ra được khai báo như sau:

định dạng NAME =
DANH SÁCH HÌNH THỨC
.

Nếu tên bị bỏ qua, định dạng "STDOUT" được xác định. Một đơn "." trong cột 1 được sử dụng để
chấm dứt một định dạng. FORMLIST bao gồm một chuỗi các dòng, mỗi dòng có thể là một trong số
ba loại:

1. Nhận xét, được biểu thị bằng cách đặt dấu '#' vào cột đầu tiên.

2. Dòng "hình ảnh" đưa ra định dạng cho một dòng đầu ra.

3. Một dòng đối số cung cấp các giá trị để cắm vào dòng hình trước đó.

Các dòng hình ảnh chứa các định nghĩa trường đầu ra, xen kẽ với văn bản chữ. Này
các dòng không trải qua bất kỳ loại nội suy biến đổi nào. Các định nghĩa trường được tạo thành
từ một tập hợp các ký tự, để bắt đầu và mở rộng một trường đến chiều rộng mong muốn của nó. Đây là
tập hợp đầy đủ các ký tự cho các định nghĩa trường:

@ bắt đầu của trường thông thường
^ bắt đầu của trường đặc biệt
<ký tự pad để căn trái
| ký tự đệm để căn giữa
> ký tự pad để biện minh đúng
# ký tự pad cho trường số căn phải
0 thay vì # đầu tiên: số pad với các số XNUMX đứng đầu
. dấu thập phân trong một trường số
... kết thúc một trường văn bản, hiển thị "..." làm bằng chứng cắt bớt
Trường độ rộng biến đổi @ * cho một giá trị nhiều dòng
^ * trường độ rộng thay đổi cho dòng tiếp theo của giá trị nhiều dòng
~ dòng ngăn chặn với tất cả các trường trống
~~ lặp lại dòng cho đến khi hết tất cả các trường

Mỗi trường trong một dòng hình ảnh bắt đầu bằng "@" (at) hoặc "^" (dấu mũ), cho biết
chúng tôi sẽ gọi tương ứng là trường "thông thường" hoặc "đặc biệt". Sự lựa chọn các ký tự đệm
xác định xem một trường là dạng văn bản hay dạng số. Các toán tử dấu ngã không phải là một phần của
đồng ruộng. Hãy xem xét các khả năng khác nhau một cách chi tiết.

bản văn Lĩnh vực
Độ dài của trường được cung cấp bằng cách đệm trường bằng nhiều "<", ">" hoặc
"|" các ký tự để chỉ định một trường không phải số, tương ứng với căn trái,
biện minh đúng, hoặc căn giữa. Đối với một trường thông thường, giá trị (lên đến đầu tiên
dòng mới) được lấy và in theo cách giải thích đã chọn, cắt bớt phần thừa
nhân vật. Nếu bạn kết thúc trường văn bản bằng "...", ba dấu chấm sẽ được hiển thị nếu
giá trị bị cắt bớt. Một trường văn bản đặc biệt có thể được sử dụng để tạo văn bản nhiều dòng thô sơ
làm đầy khối; xem "Sử dụng Chế độ Tô màu" để biết chi tiết.

Ví dụ:
định dạng STDOUT =
@ <<<<<< @ |||||| @ >>>>>>
"trái", "giữa", "phải"
.
Đầu ra:
trái giữa phải

Numeric Lĩnh vực
Sử dụng "#" làm ký tự đệm chỉ định một trường số, với phần căn phải. Một
không bắt buộc "." xác định vị trí của dấu thập phân. Với "0" (không) thay vì
đầu tiên "#", số được định dạng sẽ được đệm bằng các số XNUMX ở đầu nếu cần. MỘT
trường số đặc biệt được bỏ trống nếu giá trị không được xác định. Nếu giá trị kết quả
sẽ vượt quá chiều rộng được chỉ định, trường được điền bằng "#" làm bằng chứng tràn.

Ví dụ:
định dạng STDOUT =
@ ### @. ### @ ##. ### @ ### @ ### ^ ####
42, 3.1415, undef, 0, 10000, undef
.
Đầu ra:
42 3.142 0.000 0 ####

Sản phẩm Phần @* cho Chiều rộng biến đổi Nhiều dòng bản văn
Trường "@ *" có thể được sử dụng để in các giá trị nhiều dòng, không có hàm số; nó nên (nhưng
không cần thiết) tự xuất hiện trên một dòng. Nguồn cấp dữ liệu dòng cuối cùng bị tắt, nhưng tất cả các nguồn khác
các ký tự được phát ra nguyên văn.

Sản phẩm Phần ^* cho Chiều rộng biến đổi Một dòng tại một thời điểm bản văn
Giống như "@ *", đây là trường có độ rộng thay đổi. Giá trị được cung cấp phải là một biến vô hướng.
Perl đặt dòng đầu tiên (lên đến "\ n" đầu tiên) của văn bản vào trường, sau đó cắt
ra khỏi mặt trước của chuỗi để lần sau khi biến được tham chiếu, nhiều
văn bản có thể được in. Biến sẽ không được khôi phục.

Ví dụ:
$ text = "dòng 1 \ n dòng 2 \ n dòng 3";
định dạng STDOUT =
Văn bản: ^ *
$ văn bản
~~ ^ *
$ văn bản
.
Đầu ra:
Văn bản: dòng 1
dòng 2
dòng 3

Chỉ định Các giá trị
Các giá trị được chỉ định trên dòng định dạng sau theo thứ tự như hình
lĩnh vực. Các biểu thức cung cấp giá trị phải được phân tách bằng dấu phẩy. Họ là tất cả
được đánh giá trong ngữ cảnh danh sách trước khi dòng được xử lý, do đó, một biểu thức danh sách duy nhất
có thể tạo ra nhiều phần tử danh sách. Các biểu thức có thể được trải rộng ra nhiều hơn một
dòng nếu được đặt trong dấu ngoặc nhọn. Nếu vậy, dấu ngoặc nhọn mở đầu phải là dấu đầu tiên trên dấu đầu tiên
hàng. Nếu một biểu thức đánh giá thành một số có phần thập phân và nếu
hình ảnh tương ứng chỉ định rằng phần thập phân sẽ xuất hiện trong đầu ra (
là, bất kỳ hình ảnh nào ngoại trừ nhiều ký tự "#" không có một ".") được nhúng, ký tự
được sử dụng cho dấu thập phân được xác định bởi ngôn ngữ LC_NUMERIC hiện tại nếu "sử dụng ngôn ngữ"
đang có hiệu lực. Điều này có nghĩa là, ví dụ: nếu môi trường thời gian chạy xảy ra với
chỉ định ngôn ngữ tiếng Đức, "," sẽ được sử dụng thay vì "." mặc định. Xem perllocale và
"CẢNH BÁO" để biết thêm thông tin.

Sử dụng Điền Chế độ
Trên các trường văn bản, dấu mũ cho phép một loại chế độ điền. Thay vì một biểu thức tùy ý,
giá trị được cung cấp phải là một biến vô hướng có chứa một chuỗi văn bản. Perl đặt
phần tiếp theo của văn bản vào trường, rồi cắt phần trước của chuỗi sao cho
rằng lần sau khi biến được tham chiếu, nhiều văn bản hơn có thể được in. (Đúng,
điều này có nghĩa là bản thân biến bị thay đổi trong quá trình thực thi ghi () gọi, và
không được khôi phục.) Phần tiếp theo của văn bản được xác định bằng cách ngắt dòng thô thiển
thuật toán. Bạn có thể sử dụng ký tự xuống dòng ("\ r") để buộc ngắt dòng. Bạn có thể
thay đổi các ký tự hợp pháp để ngắt bằng cách thay đổi biến $: (đó là
$ FORMAT_LINE_BREAK_CHARACTERS nếu bạn đang sử dụng mô-đun tiếng Anh) vào danh sách mong muốn
ký tự.

Thông thường, bạn sẽ sử dụng một chuỗi các trường trong một ngăn xếp dọc được liên kết với cùng một
biến vô hướng để in ra một khối văn bản. Bạn có thể muốn kết thúc trường cuối cùng với
văn bản "...", sẽ xuất hiện trong đầu ra nếu văn bản quá dài để xuất hiện trong
toàn bộ.

Kìm nén đường Ở đâu Tất cả Lĩnh vực Làm mất hiệu lực
Sử dụng các trường dấu mũ có thể tạo ra các dòng trong đó tất cả các trường đều trống. Bạn có thể ngăn chặn như vậy
bằng cách đặt một ký tự "~" (dấu ngã) ở bất kỳ vị trí nào trong dòng. Dấu ngã sẽ là
được dịch sang một khoảng trắng khi đầu ra.

Lặp đi lặp lại Định dạng đường
Nếu bạn đặt hai ký tự dấu ngã liền kề "~~" vào bất kỳ đâu vào một dòng, dòng đó sẽ là
lặp đi lặp lại cho đến khi hết các trường trên dòng, tức là không xác định. Đối với đặc biệt
(dấu mũ) các trường văn bản, điều này sớm hay muộn sẽ xảy ra, nhưng nếu bạn sử dụng trường văn bản của at
đa dạng, biểu thức bạn cung cấp tốt hơn là không cho giá trị giống nhau mãi mãi!
("shift (@f)" là một ví dụ đơn giản sẽ hoạt động.) Không sử dụng trường số (at) thông thường
trong những dòng như vậy, bởi vì nó sẽ không bao giờ trống.

Áo sơ mi of Mẫu Chế biến
Theo mặc định, xử lý đầu trang được xử lý bởi một định dạng có cùng tên với hiện tại
xử lý tệp với "_TOP" được nối với nó. Nó được kích hoạt ở đầu mỗi trang. Nhìn thấy
"viết" bằng perlfunc.

Ví dụ:

# một báo cáo về / etc / passwd hồ sơ
định dạng STDOUT_TOP =
Tệp mật khẩu
Tên Đăng nhập Văn phòng Uid Gid Trang chủ
-------------------------------------------------- ----------------
.
định dạng STDOUT =
@ <<<<<<<<<<<<<<<<<<<< @ ||||||| @ <<<<<< @ >>>> @ >>>> @ <<<<<<<<<<<<<<<<<
$ name, $ login, $ office, $ uid, $ gid, $ home
.

# một báo cáo từ biểu mẫu báo cáo lỗi
định dạng STDOUT_TOP =
Báo cáo lỗi
@ <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @ ||| @ >>>>>>>>>>>>>>>>>>>>>>>>
$ system, $%, $ date
-------------------------------------------------- ----------------
.
định dạng STDOUT =
Chủ đề: @ <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<
$ chủ đề
Chỉ mục: @ <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ^ <<<<<<<<<<<<<<<<<<< <<<<<<<<<
$ index, $ description
Mức độ ưu tiên: @ <<<<<<<<<<< Ngày: @ <<<<<<<< ^ <<<<<<<<<<<<<<<<<<<<<<<<<<<< <
$ ưu tiên, $ ngày, $ mô tả
Từ: @ <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ^ <<<<<<<<<<<<<<<<< <<<<<<<<<<
$ từ, $ mô tả
Được giao cho: @ <<<<<<<<<<<<<<<<<<<<<<<<< ^ <<<<<<<<<<<<<<<<<<<<<<<< <<<<
$ lập trình viên, $ mô tả
~ ^ <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$ mô tả
~ ^ <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$ mô tả
~ ^ <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$ mô tả
~ ^ <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$ mô tả
~ ^ <<<<<<<<<<<<<<<<<<<<<<<<<< ...
$ mô tả
.

Có thể trộn lẫn in()s với ghi ()trên cùng một kênh đầu ra, nhưng bạn sẽ
phải tự xử lý "$ -" ($ FORMAT_LINES_LEFT).

Định dạng Biến
Tên định dạng hiện tại được lưu trữ trong biến $ ~ ($ FORMAT_NAME) và tên định dạng hiện tại
của tên định dạng biểu mẫu bằng $ ^ ($ FORMAT_TOP_NAME). Số trang đầu ra hiện tại được lưu trữ
bằng $% ($ FORMAT_PAGE_NUMBER) và số dòng trên trang bằng $ =
($ FORMAT_LINES_PER_PAGE). Đầu ra autoflush trên tay cầm này có được lưu trữ trong $ |
($ OUTPUT_AUTOFLUSH). Đầu ra chuỗi trước mỗi đầu trang (ngoại trừ đầu tiên) là
được lưu trữ trong $ ^ L ($ FORMAT_FORMFEED). Các biến này được đặt trên cơ sở mỗi lần xử lý tệp, vì vậy
bạn cần phải lựa chọn() thành một cái khác để ảnh hưởng đến họ:

select ((chọn (OUTF),
$ ~ = "My_Other_Format",
$ ^ = "My_Top_Format"
) [0]);

Khá xấu phải không? Đó là một thành ngữ phổ biến, vì vậy đừng quá ngạc nhiên khi bạn nhìn thấy nó.
Ít nhất bạn có thể sử dụng một biến tạm thời để giữ tệp xử lý trước đó: (đây là nhiều
nói chung, cách tiếp cận tốt hơn, bởi vì không chỉ cải thiện mức độ dễ đọc, giờ đây bạn có
giai đoạn trung gian trong biểu thức để trình gỡ lỗi thực hiện một bước qua):

$ ofh = select (OUTF);
$ ~ = "My_Other_Format";
$ ^ = "My_Top_Format";
chọn ($ ofh);

Nếu bạn sử dụng mô-đun tiếng Anh, bạn thậm chí có thể đọc các tên biến:

sử dụng tiếng Anh;
$ ofh = select (OUTF);
$ FORMAT_NAME = "My_Other_Format";
$ FORMAT_TOP_NAME = "My_Top_Format";
chọn ($ ofh);

Nhưng bạn vẫn có những điều hài hước lựa chọn()NS. Vì vậy, chỉ cần sử dụng mô-đun FileHandle. Bây giờ bạn
có thể truy cập các biến đặc biệt này bằng cách sử dụng tên phương thức viết thường thay thế:

sử dụng FileHandle;
format_name OUTF "My_Other_Format";
format_top_name OUTF "My_Top_Format";

Tốt hơn nhiều!

GHI CHÚ


Bởi vì dòng giá trị có thể chứa các biểu thức tùy ý (đối với các trường, không phải dấu mũ
), bạn có thể tạo ra các quy trình xử lý phức tạp hơn cho các chức năng khác, như sprintf ()
hoặc của riêng bạn. Ví dụ:

định dạng Ident =
@ <<<<<<<<<<<<<<<
& commify ($ n)
.

Để có dấu mũ hoặc dấu mũ thực vào trường, hãy làm như sau:

định dạng Ident =
Tôi có một @ ở đây.
"@"
.

Để căn giữa toàn bộ dòng văn bản, hãy làm như sau:

định dạng Ident =
@ ||||||||||||||||||||||||||||||||||||||
"Một số dòng văn bản"
.

Tuy nhiên, không có cách nội dung nào để nói "đưa phần này sang bên phải của trang
nó rộng lớn. "Bạn phải xác định nó sẽ đi đâu. Người thực sự tuyệt vọng có thể tạo ra
định dạng riêng một cách nhanh chóng, dựa trên số lượng cột hiện tại và sau đó eval () nó:

$ format = "format STDOUT = \ n"
. '^'. '<' x $ cols. "\n"
. '$ entry'. "\n"
. "\ t ^". "<" x ($ cols-8). "~~ \ n"
. '$ entry'. "\n"
. ".\n";
in định dạng $ nếu $ Gỡ lỗi;
định dạng eval $;
chết $ @ nếu $ @;

Điều này sẽ tạo ra một định dạng trông giống như sau:

định dạng STDOUT =
^ <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<
$ entry
^ <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <~~
$ entry
.

Đây là một chương trình nhỏ giống như fmt(1):

định dạng =
^ <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ~~
$_

.

$ / = '';
trong khi (<>) {
s / \ s * \ n \ s * / / g;
viết;
}

Chân trang
Trong khi $ FORMAT_TOP_NAME chứa tên của định dạng tiêu đề hiện tại, không có
cơ chế tương ứng để tự động làm điều tương tự cho footer. Không biết làm thế nào
sẽ có một định dạng lớn cho đến khi bạn đánh giá nó là một trong những vấn đề lớn. Nó trên
danh sách VIỆC CẦN LÀM.

Đây là một chiến lược: Nếu bạn có chân trang có kích thước cố định, bạn có thể lấy chân trang bằng cách kiểm tra
$ FORMAT_LINES_LEFT trước mỗi ghi () và tự in phần chân trang nếu cần.

Đây là một chiến lược khác: Mở đường dẫn cho chính bạn, sử dụng "mở (MYSELF," | - ")" (xem "mở"
trong perlfunc) và luôn luôn ghi () thành MYSELF thay vì STDOUT. Yêu cầu con bạn xử lý
xoa bóp STDIN của nó để sắp xếp lại đầu trang và chân trang theo cách bạn muốn. Không tiện lắm,
nhưng có thể làm được.

Truy cập Định dạng Nội bộ
Để có quyền truy cập cấp thấp vào cơ chế định dạng, bạn có thể sử dụng formline () và truy cập $ ^ A
(biến $ ACCUMULATOR) trực tiếp.

Ví dụ:

$ str = formline << 'HẾT', 1,2,3;
@ <<< @ ||| @ >>>
END

print "Ồ, tôi vừa mới lưu trữ '$ ^ A' trong bộ tích lũy! \ n";

Hoặc để làm một swrite () chương trình con, là để ghi ()sprintf ()printf (), làm
điều này:

sử dụng Cá Chép;
viết phụ {
croak "cách sử dụng: swrite PICTURE ARGS" trừ khi @_;
$ format = shift của tôi;
$ ^ A = "";
formline ($ format, @ _);
trả về $ ^ A;
}

$ string = swrite (<< 'HẾT', 1, 2, 3);
Kiểm tra tôi
@ <<< @ ||| @ >>>
END
in $ string;

CẢNH BÁO


Dấu chấm duy nhất kết thúc một định dạng cũng có thể kết thúc sớm một thư gửi qua
định cấu hình sai phong thư Internet (và dựa trên kinh nghiệm, cấu hình sai đó là quy tắc,
không phải là ngoại lệ). Vì vậy, khi gửi mã định dạng qua thư, bạn nên thụt lề để
rằng dấu chấm kết thúc định dạng không nằm ở lề trái; điều này sẽ ngăn chặn việc cắt SMTP.

Các biến Lexical (được khai báo bằng "my") không hiển thị trong một định dạng trừ khi định dạng
được khai báo trong phạm vi của biến từ vựng.

Nếu môi trường của chương trình chỉ định một ngôn ngữ LC_NUMERIC và "sử dụng ngôn ngữ" có hiệu lực
khi định dạng được khai báo, ngôn ngữ được sử dụng để chỉ định ký tự dấu thập phân trong
đầu ra được định dạng. Không thể kiểm soát đầu ra đã định dạng bằng "sử dụng ngôn ngữ" tại thời điểm
ghi () được gọi là. Xem perllocale để thảo luận thêm về xử lý ngôn ngữ.

Trong các chuỗi sẽ được hiển thị trong trường văn bản có độ dài cố định, mỗi điều khiển
ký tự được thay thế bằng dấu cách. (Nhưng hãy nhớ ý nghĩa đặc biệt của "\ r" khi sử dụng
chế độ điền.) Điều này được thực hiện để tránh sự lệch lạc khi các ký tự điều khiển "biến mất" trên một số
phương tiện đầu ra.

Sử dụng perlform trực tuyến bằng các dịch vụ onworks.net


Máy chủ & Máy trạm miễn phí

Tải xuống ứng dụng Windows & Linux

  • 1
    xác thực
    xác thực
    AuthPass là một mật khẩu nguồn mở
    quản lý với sự hỗ trợ cho phổ biến và
    Keepass đã được chứng minh (kdbx 3.x VÀ kdbx 4.x ...
    Tải xuống mật khẩu xác thực
  • 2
    Zabbix
    Zabbix
    Zabbix là một công ty mở cấp doanh nghiệp
    nguồn giải pháp giám sát phân tán
    được thiết kế để giám sát và theo dõi
    hiệu suất và tính khả dụng của mạng
    máy chủ, thiết bị ...
    Tải xuống Zabbix
  • 3
    KĐ3
    KĐ3
    Kho lưu trữ này không còn được duy trì
    và được giữ cho mục đích lưu trữ. Nhìn thấy
    https://invent.kde.org/sdk/kdiff3 for
    mã mới nhất và
    https://download.kde.o...
    Tải xuống KDiff3
  • 4
    USBLoaderGX
    USBLoaderGX
    USBLoaderGX là một GUI cho
    Bộ nạp USB của Waninkoko, dựa trên
    libwiigui. Nó cho phép liệt kê và
    khởi chạy trò chơi Wii, trò chơi Gamecube và
    homebrew trên Wii và WiiU ...
    Tải xuống USBLoaderGX
  • 5
    Chim lửa
    Chim lửa
    Firebird RDBMS cung cấp các tính năng ANSI SQL
    & chạy trên Linux, Windows &
    một số nền tảng Unix. Đặc trưng
    đồng thời và hiệu suất tuyệt vời
    & sức mạnh...
    Tải xuống Firebird
  • 6
    KompoZer
    KompoZer
    KompoZer là một trình soạn thảo HTML wysiwyg sử dụng
    cơ sở mã của Mozilla Composer. Như
    Sự phát triển của Nvu đã bị dừng lại
    vào năm 2005, KompoZer sửa nhiều lỗi và
    thêm một f ...
    Tải xuống KompoZer
  • Khác »

Lệnh Linux

Ad