PowerShell实现简单的搜索地区功能
import os
from tkinter import Tk
from tkinter import Label
from tkinter import Button
from tkinter import Entry
from tkinter import StringVar # public Dictionary<string, string> GenerateAreaDict(string filePath) {
# Dictionary<string, string> areaDict = new Dictionary<string, string>(); # if (File.Exists(filePath)) {
# string[] areaCode = File.ReadAllLines(filePath); # foreach (string code in areaCode) {
# areaDict.Add(code.Substring(0, 6), code);
# }
# } # return areaDict;
# } def generateAreaDict():
text = '' with open(fullFilePath, 'r') as file:
text = file.read() text = text.replace(' ', '').replace('\t', '').split('\n') for line in text:
if len(line) > 0:
area[line[:6]] = line[6:] # public string[] Search(string areaName, Dictionary<string, string> areaDict) {
# List<string> areaIndex = new List<string>(); # foreach (KeyValuePair<string, string> kvp in areaDict) {
# if (kvp.Value.Contains(areaName)) {
# areaIndex.Add(kvp.Key);
# }
# } # return areaIndex.ToArray();
# } def search():
name = entryVar.get().replace(' ', '') if len(name) > 0:
result.clear() for key, value in area.items():
if value.find(name) != -1:
result.append([key, value]) if len(result) > 0:
deepSearch()
else:
labelVar.set('Not find.') # public string[] DeepSearch(string[] areaIndex, Dictionary<string, string> areaDict) {
# List<string> areaInfo = new List<string>();
# string temp = ""; # foreach (string index in areaIndex) {
# temp = ""; # if (index.Substring(2, 2).Equals("00")) {
# temp += areaDict[index];
# } else if (index.Substring(4, 2).Equals("00")) {
# string i = index.Substring(0, 2) + "0000"; # if (areaDict.ContainsKey(i)) {
# temp += (areaDict[i] + "\t");
# }
# temp += areaDict[index];
# } else {
# string i = index.Substring(0, 2) + "0000";
# string j = index.Substring(0, 4) + "00"; # if (areaDict.ContainsKey(i)) {
# temp += (areaDict[i] + "\t");
# }
# if (areaDict.ContainsKey(j)) {
# temp += (areaDict[j] + "\t");
# }
# temp += areaDict[index];
# } # areaInfo.Add(temp);
# } # return areaInfo.ToArray();
# } def deepSearch():
for r in result:
code = r[0] if code[4:] != '':
key = code[:4]+''
if key in area:
r.append(key)
r.append(area[key]) key = code[:2]+''
if key in area:
r.append(key)
r.append(area[key]) elif code[2:] != '':
key = code[:2]+''
if key in area:
r.append(key)
r.append(area[key]) showResult() def showResult():
text = '' for r in result:
line = '' for i in range(1, len(r), 2):
line = r[i] + ' ' + line text = text + line + '\n' labelVar.set(text) def searchCallback(event):
search() # public class AreaSearchToolApp {
# public void Run() {
# string filePath = "AreaCode.txt";
# string areaName = "萧山"; # Dictionary<string, string> areaDict = GenerateAreaDict(filePath); # string[] areaIndex = Search(areaName, areaDict);
# string[] areaInfo = DeepSearch(areaIndex, areaDict);
# } window = Tk()
window.title('Search Tool')
window.geometry('350x200') labelVar = StringVar() # should after Tk() function
entryVar = StringVar()
area = {}
result = []
cwd = os.getcwd()
filename = 'AreaCode.txt'
fullFilePath = os.path.join(cwd, filename) Label(window, textvariable=labelVar, justify='left').pack(fill='both', expand='yes') if os.path.exists(fullFilePath) and os.path.isfile(fullFilePath):
generateAreaDict() Entry(window, textvariable=entryVar).pack(fill='x', padx=10, pady=5)
window.bind('<Return>', searchCallback)
Button(window, text='Search', command=search).pack(fill='x', padx=10, pady=5)
else:
labelVar.set('Please put ' + filename + ' under ' + cwd + '.') window.mainloop()
https://files.cnblogs.com/files/howld/SearchTool.zip
PowerShell实现简单的搜索地区功能的更多相关文章
- 基于Vuejs的搜索匹配功能
最近一直在看vue,查了很多资料,看了很多文档和博客,大概半知半解了,然后利用所理解的知识写了一个简单的搜索匹配功能. 大概长这个样子: <!DOCTYPE html> <htm ...
- jQuery实现简单前端搜索功能
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Vue2.0实现1.0的搜索过滤器功能
Vue2.0删除了很多1.0的比较实用的过滤器,如filterBy,orderBy.官方文档给了通过计算属性实现1.0搜索过滤器功能,自己又加入了大小写通用检索功能,比较简单,学一下. <bod ...
- 使用 JavaScript 实现简单候选项推荐功能(模糊搜索)【收藏】【转】
当我们使用 Google 等搜索功能时,会出现与搜索内容有关的候选项.使用 JavaScript 搜索字符串,通常会使用 indexOf 或者 search 函数,但是非常僵硬,只能搜索匹配特定词语. ...
- JavaScript实现搜索联想功能
-.虽然Jquery已经有了一个完整的包 实现前端搜索联想功能,但是出于学习还是想了解一下实现此功能的原理性 回想起来 实现此功能很简单,1.前端输入字符串 文本改变 异步请求服务器 将返回的资料显示 ...
- 【Android自己定义View实战】之自己定义超简单SearchView搜索框
[Android自己定义View实战]之自己定义超简单SearchView搜索框 这篇文章是对之前文章的翻新,至于为什么我要又一次改动这篇文章?原因例如以下 1.有人举报我抄袭,原文链接:http:/ ...
- 基于PHP实现一个简单的在线聊天功能(轮询ajax )
基于PHP实现一个简单的在线聊天功能(轮询ajax ) 一.总结 1.用的轮询ajax 二.基于PHP实现一个简单的在线聊天功能 一直很想试着做一做这个有意思的功能,感觉复杂的不是数据交互和表结构,麻 ...
- (转)用C#实现实现简单的 Ping 的功能,用于测试网络是否已经连通
本文转载自:http://blog.csdn.net/xiamin/archive/2009/02/14/3889696.aspx 用C#实现实现简单的 Ping 的功能,用于测试网络是否已经联通 1 ...
- 简单实现UITableView索引功能(中英文首字母索引) (二) By HL
简单实现UITableView索引功能(中英文首字母索引)(一) ByH罗 相关类: NSString+PinYing(获取中英文首字母) 参考上面链接 #import "ViewCon ...
随机推荐
- UNIX网络编程(卷1)——学习过程中遇到的新词语
第2章 传输层:TCP.UDP.SCTP TCP Trasmission Control Protocol 传输控制协议 UDP User Datagram Protocol 用户数据报协议 SCTP ...
- Windows Server 2012 R2 双网卡绑定
双网卡绑定主要有以下两点好处: 1.实现网络容错:主主模式和主被模式 2.带宽聚合 首先准备工作需要两台虚拟机,Server01是目标服务器,需要有两块网卡,并且清空两块网卡的现有配置,Server0 ...
- win7系统标准用户恢复administrator账号方法
一次误操作,把管理员账号给禁用了,满眼的泪花~~~~~~~~~ 标准用户,什么都干不了,怎么办呢????? 度娘一下,各种奇葩答案,就是解决不了 呵呵,最后找到了解决方法: 1.开机后BIOS过后,按 ...
- Distance on the tree
Distance on the tree https://nanti.jisuanke.com/t/38229 DSM(Data Structure Master) once learned abou ...
- tomcat关闭时Log4j2报错 Log4j Log4j2-TF-4-Scheduled-1 memory leak
出错信息: 23-Sep-2017 17:43:18.964 警告 [main] org.apache.catalina.loader.WebappClassLoaderBase.clearRefer ...
- Python中的计时器对象
计时器对象用于特定时间运行的操作.往往被安排到特定的单独的线程上运行, 但是计时器初始化的时间间隔可能不是解释器实际执行操作时的实际时刻, 因为线程调度程序负责实际调度与计时器对象相对应的线程. Ti ...
- API Test WebApiTestClient工具安装及使用
一.guget安装: 1.解决方案右键-管理解决方案的nuget程序包打开如下图: 搜索WebApiTestClient,然后选择查询出的项目,右边点击安装即可: 2.安装会有如下图提示: 确定即 ...
- SVD的基础详解
目录
- ECMA262学习笔记(二)
Property特性:特性用于定义和解释命名属性的状态. ECMAScript建立执行环境: 解释执行全局代码或使用eval函数输入的代码会创建并进入一个新的执行环境.每次调用ECMA脚本代码定义的函 ...
- Replace To Make Regular Bracket Sequence
Replace To Make Regular Bracket Sequence You are given string s consists of opening and closing brac ...