<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<
</HEAD>
<BODY BGCOLOR="#FFFFFF">
^!
</BODY>
</HTML>
^ Perhatikan ini! antara kedua tag BODY. Ini adalah kode khusus yang menyebabkan kursor berada dalam posisi yang tepat ketika pengguna membuka dokumen baru dengan menggunakan template. Anda akan melihat bahwa ketika Anda membuka sebuah merek baru HTML kursor dokumen yang benar yang mana ^! sekarang muncul.
Simpan file template dengan mengklik tombol simpan pada toolbar utama, atau dengan memilih Save dari menu File.Sekarang, ketika Anda membuat dokumen HTML baru, maka secara otomatis akan berisi nama Anda pada tag META Penulis.
Setelah disesuaikan default template bagus, tapi Anda mungkin menemukan bahwa Anda ingin memiliki standar HTML template untuk berbagai jenis dokumen HTML. Misalnya, jika Anda memiliki situs web dengan banyak halaman, Anda mungkin ingin default template khusus khusus untuk halaman web baru untuk situs tersebut. Anda dapat menambahkan sendiri template sangat mudah.
Contoh: Joe orang bodoh, extroardinaire tukang kayu, sedang mengembangkan website sendiri untuk perusahaan, Joe's Hardware. Untuk membuat hidupnya lebih mudah, Joe membangun sendiri template sehingga ketika dia menciptakan halaman baru untuk situs, ia dapat memiliki banyak pengaturan standar sudah kode untuk dia! Nya file template, JOE.HTML, muncul di bawah ini:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Joe's Hardware - [page title]</TITLE>
<META NAME="Author" CONTENT="Joe Schmoe">
<META NAME="Rating" CONTENT="General">
<META NAME="Keywords" CONTENT="wood, nails, hardware, paint">
<META NAME="Description" CONTENT="">
<LINK REL="stylesheet" TITLE="mainstyle" HREF="mainstyles.css">
<BASEFONT SIZE="2">
</HEAD>
<BODY BACKGROUND="images/joesbg.jpg">
^!
</BODY>
</HTML>
Menulis teks filter
Ini merupakan garis besar bagaimana menulis teks Anda sendiri alat penyaring pengguna.
Mengapa?
Aku bekerja mengetahui bagaimana melakukan ini karena saya ingin menyaring pesan kesalahan dari file skrip SQL output besar, tetapi Anda dapat menggunakan teknik ini untuk memanipulasi file dengan cara apapun. Bayangkan jika mencari dan mengganti memiliki kekuatan bahkan lebih dari kalimat biasa. Batas-batas hanya kemampuan pemrograman Anda dan imajinasi.
Bagaimana?
Anda membuat pengguna untuk menjalankan alat penyaring - pilih "Jalankan sebagai filter teks" pilihan. Anda tidak harus menggunakan salah satu argumen khusus seperti $ (Filename) karena filter teks selalu dijalankan pada isi jendela EditPlus saat ini. Perintah dan pengaturan argumen akan bervariasi sesuai dengan cara filter Anda harus dipanggil. Tentu saja, Anda juga harus menulis filter. contoh saya di bawah ini adalah Jawa, tetapi bahasa apapun yang dapat membaca standar input stream dan menulis ke output stream standar baik-baik saja. Jika Anda akrab dengan ide untuk menulis sebuah utilitas yang berjalan dalam pipa baris perintah, ini sangat mirip. Pendekatan umum adalah bahwa Anda makan isi file saat ini yang Anda baca. Kode Anda memutuskan apa yang harus dilakukan dengan masukan ini. Hal ini dapat output beberapa atau semua masukan, menambah atau mengganti bagian, menghasilkan sesuatu yang sama sekali baru. Sementara itu, Anda juga dapat melakukan hal lain Anda suka dengan teks, seperti e-mail juicy bit untuk nenek Anda.
Bagaimana kalau itu beres?
Sama seperti menggunakan pencarian dan mengganti, jika Anda tidak menyukai apa saringan dilakukan untuk teks Anda, Anda dapat membatalkan.
Contoh 1: Jawa
Ini kode Java menghapus dari pesan output skrip SQL yang mengindikasikan bahwa hal-hal telah bekerja dengan benar, hanya meninggalkan pesan kesalahan.
import java.io.*;
import java.util.HashSet;
public class SPOutStripper
{
static HashSet strippers = new HashSet ();
static
{
strippers.add ( "" ); // a blank line
strippers.add ( "Table dropped." );
strippers.add ( "Table created." );
strippers.add ( "1 row created." );
strippers.add ( "Commit complete." );
strippers.add ( "Table altered." );
strippers.add ( "1 row updated." );
// ...and many others
}
public static void main ( String [] args )
throws Exception // Lazy programmer hopes IOException won't bite him
{
BufferedReader in = new BufferedReader ( new InputStreamReader ( System.in ) );
PrintWriter out = new PrintWriter ( new BufferedWriter ( new OutputStreamWriter ( System.out ) ) );
String line;
// Loop through lines of input
while ( null != ( line = in.readLine () ) )
{
// Check whether line should be stripped out
if ( ! strippers.contains ( line ) )
{
// If it shouldn't, send it back out again
out.println ( line );
}
}
out.flush (); // Important!
// Finished - tidy up
out.close ();
in.close ();
}
}
Contoh 2: Perl
Perl kode untuk menghapus terkemuka dan trailing spasi (spasi dan tab)
#!/usr/bin/perl
use warnings;
use strict;
while (my $text = <STDIN>) {
chomp $text;
$text =~ s/^[ \t]+|[ \t]+$//g;
print "$text\n";
}
Contoh 3: Javascript atau VBScript
Contoh ini menggunakan Javascript. Ia bekerja pada dasarnya sama dalam VBScript. Jalankan sebagai: cscript / / NoLogo "path c: \ ke alat \ tool.js"
var stdin = WScript.StdIn;
var stdout = WScript.StdOut;
var input = stdin.ReadAll();
/*
Here you do something with the input.
But since this is a demo, we're just going to write it back out.
*/
stdout.Write(input);
Example 4: Python
This example attempts to tidy XML. It can be run as an EditPlus text filter tool, or from the command line.
import os,sys,re
def openAnything(source):
"""Cribbed form diveintopython.org """
if source == "-":
return sys.stdin
# try to open with urllib (if source is http, ftp, or file URL)
import urllib
try:
return urllib.urlopen(source)
except (IOError, OSError):
pass
# try to open with native open function (if source is pathname)
try:
return open(source, 'r')
except (IOError, OSError):
pass
# treat source as string
import StringIO
return StringIO.StringIO(str(source))
def prettyUp ( xml ):
""" Based on http://www.faqts.com/knowledge_base/view.phtml/aid/4334/fid/538 """
parts = re.split ( '(<.*?>)', xml )
level = 0
wasText = False
out = ""
for part in parts:
# ignore empty part
if part.strip ( ) == '':
continue
# opening tags
if part [ 0 ] == '<' and part [ 1 ] != '/' and part [ 1 ] != '?' and part [ 1 ] != '!':
print
sys.stdout.write ( '\t' * ( level ) + part )
# short-cut empty tag
if part [ -2 : ] != '/>':
level += 1
wasText = False
# closing tags
elif part [ : 2 ] == '</':
level -= 1
if not wasText:
print
sys.stdout.write ( '\t' * ( level ) )
sys.stdout.write ( part )
wasText = False
# text
else:
sys.stdout.write ( part )
wasText = True
if len ( sys.argv ) == 1:
xml = openAnything ( "-" ).read ()
elif len ( sys.argv ) == 2:
xml = openAnything ( sys.argv [ 1 ] ).read ()
else:
xml = None
sys.stderr.write ( "Wrong number of arguments.\n" )
if None != xml:
prettyUp ( xml )
Example 5: Python again
This is surprisingly useful. It lines up text into columns by inserting spaces, for example from:
9 whatever
999 whatever
99 whatever
9999 whatever
to:
9 whatever
999 whatever
99 whatever
9999 whatever
Note: This code has some quirks - but you can hit Undo if you don't like the result.
You'll need to use "Prompt for arguments" ("$(Prompt)")after the script name to get a dialog where you can specify the whatever to be lined up. For a regular expression match, start with / (so /c.t will line up cat, cot, etc.)
import os,sys,re
def openAnything ( source ):
"""Cribbed form diveintopython.org """
if source == "-":
return sys.stdin
# try to open with urllib (if source is http, ftp, or file URL)
import urllib
try:
return urllib.urlopen ( source )
except ( IOError, OSError ):
pass
# try to open with native open function (if source is pathname)
try:
return open ( source, 'r' )
except ( IOError, OSError ):
pass
# treat source as string
import StringIO
return StringIO.StringIO ( str ( source ) )
def findMarker ( line, marker ):
if "/" == marker [ : 1 ]:
match = re.search ( marker [ 1 : ], line )
if None == match:
return -1
return match.start ()
return line.find ( marker )
def lineUp ( text, marker ):
lines = re.split ( '\n', text )
maxStartLen = max ( findMarker ( line, marker ) for line in lines )
for line in lines:
if 0 < len ( line ):
pos = findMarker ( line, marker )
start = line [ : pos ]
end = line [ pos : ]
print start + ( ' ' * ( maxStartLen - len ( start ) ) ) + end
if len ( sys.argv ) == 2:
text = openAnything ( "-" ).read ()
marker = sys.argv [ 1 ]
elif len ( sys.argv ) == 3:
text = openAnything ( sys.argv [ 1 ] ).read ()
marker = sys.argv [ 2 ]
else:
text = None
sys.stderr.write ( "Wrong number of arguments.\n" )
if None != text:
lineUp ( text, marker )
Tidak ada komentar:
Posting Komentar