2019-09-25上证指数A股大盘估值系数48,理论上涨空间23%,下跌7%

2019-09-25上证指数A股估值系数48(理论值0到60,但上一波3288是涨到20,
所以我们顶点暂时按20算),理论区间2750到3650,理论向上空间23%,向
下8%。根据估值理论,上涨空间远大于下跌空间,属于低吸区,所以找机
会低吸价值股

关注本人能让你提前知道大盘的位置,提前抄底逃顶

原创内容,盗版必究。

Go语言—strings包(字符串操作)

strings标准库包主要涉及字符串的基本操作。

常见字符串的操作有:

字符串求长度
求子串
是否存在某个字符或者子串
子串出现的次数(字符串匹配)
字符串分割(切分)成[]string
字符串是否存在某个前缀或后缀
字符或者子串在字符串中首次出现的位置或最后一次出现的位置
通过某个字符串将[]string进行拼接
字符串重复次数
字符串中子串替换
大小写转换
………………….等等一些基本操作。
由于string类型可以看成是一种特殊的slice类型,因此获取长度可以用内置的函数len;同时支持 切片 操作,因此,子串获取很容易。

说明:这里说的字符是rune类型,即一个UTF-8字符(Unicode代码点)。


子串

是否存在某个字符或子串

// 子串substr在s中,返回true
func Contains(s, substr string) bool
// chars中任何一个Unicode代码点在s中,返回true
func ContainsAny(s, chars string) bool
// Unicode代码点r在s中,返回true
func ContainsRune(s string, r rune) bool
示例代码:ContainsAny 函数说明

fmt.Println(strings.ContainsAny(“team”, “i”)) //false
fmt.Println(strings.ContainsAny(“failure”, “u & i”)) //true
fmt.Println(strings.ContainsAny(“in failure”, “s g”)) //true
fmt.Println(strings.ContainsAny(“foo”, “”)) //false
fmt.Println(strings.ContainsAny(“”, “”)) //false
第二个参数 chars 中任意一个字符(Unicode Code Point)如果在第一个参数 s 中存在,则返回true。

上述三个函数的源码都是调用函数Index(子串出现的位置函数),然后和0比较返回true或false。如,contains函数:

func Contains(s, substr string) bool {
return Index(s, substr) >= 0
}
字符或子串在字符串中出现的位置

//返回子串sep在字符串s中第一次出现的索引值,不在的话返回-1.
func Index(s, sep string) int
//chars中任何一个Unicode代码点在s中首次出现的位置,不存在返回-1
func IndexAny(s, chars string) int
//查找字符 c 在 s 中第一次出现的位置,其中 c 满足 f(c) 返回 true
func IndexFunc(s string, f func(rune) bool) int //rune类型是int32别名,UTF-8字符格式编码。
//返回字符c在s中第一次出现的位置
func IndexByte(s string, c byte) int //byte是字节类型
// Unicode 代码点 r 在 s 中第一次出现的位置
func IndexRune(s string, r rune) int
//查找最后一次出现的位置
func LastIndex(s, sep string) int
func LastIndexByte(s string, c byte) int
func LastIndexAny(s, chars string) int
func LastIndexFunc(s string, f func(rune) bool) int
示例:IndexFunc 的例子。

fmt.Printf(“%d\n”, strings.IndexFunc(“studygolang”, func(c rune) bool {
if c > ‘u’ {
return true
}
return false
})) //输出:4 匿名函数传递 因为 y 的 Unicode 代码点大于 u 的代码点。带入匿名函数进行比较
子串出现次数

func Count(s, sep string) int //子串在s字符串中出现的次数
(1)、特别说明一下的是当 sep 为空时,Count 的返回值是:utf8.RuneCountInString(s) + 1

(2)、Count 是计算子串在字符串中出现的无重叠的次数

字符串是否有某个前缀或后缀

// s 中是否以 prefix 开始
func HasPrefix(s, prefix string) bool {
return len(s) >= len(prefix) && s[0:len(prefix)] == prefix
}
// s 中是否以 suffix 结尾
func HasSuffix(s, suffix string) bool {
return len(s) >= len(suffix) && s[len(s)-len(suffix):] == suffix
}
golang语言中的rune类型

转载链接:http://ju.outofmemory.cn/entry/245284

Rune 是int32 的别名。用UTF-8 进行编码。这个类型在什么时候使用呢?例如需要遍历字符串中的字符。可以循环每个字节(仅在使用US ASCII 编码字符串时与字符等价,而它们在Go中不存在!)。因此为了获得实际的字符,需要使用rune类型。在UTF-8 世界的字符有时被称作runes。通常,当人们讨论字符时,多数是指8 位字符。UTF-8 字符可能会有32 位,称作rune。

例如 s:=”Go编程” fmt.Println(len(s)) 输出结果应该是8 因为中文字符是用3个字节存的。

len(string(rune(‘编’))) 的结果是3

如果想要获得我们想要的情况的话,需要先转换为rune切片再使用内置的len函数

fmt.Println(len([]rune(s))) 结果就是 4 了。

所以用string存储 unicode 的话,如果有中文,按下标是访问不到的,因为你只能得到一个 byte 。 要想访问中文的话,还是要用rune切片,这样就能按下表访问。

字符串转换

func ToUpper(s string) string
func ToLower(s string) string
func ToTitle(s string) string

func ToUpperSpecial(_case unicode.SpecialCase, s string) string
func ToLowerSpecial(_case unicode.SpecialCase, s string) string
func ToTitleSpecial(_case unicode.SpecialCase, s string) string

func Title(s string) string

比较

func Compare(a, b string) int //返回不相等-1或者 相等0

func EqualFold(s, t string) bool

清理

func Trim(s string, cutset string) string //去除字符串的头尾子字符串
func TrimLeft(s string, cutset string) string
func TrimRight(s string, cutset string) string

func TrimFunc(s string, f func(rune) bool) string //函数
func TrimLeftFunc(s string, f func(rune) bool) string
func TrimRightFunc(s string, f func(rune) bool) string

func TrimSpace(s string) string //字符串前后空格 fmt.Println(strings.TrimSpace(” \t\n a lone gopher \n\t\r\n”)) 输出:a lone gopher

func TrimPrefix(s, prefix string) string
func TrimSuffix(s, suffix string) string
代码示例:

func main(){
var s = “aaasddfgaaaa”

fun := func (c rune) bool {
    if c != 'a'{
        return false
    }
    return true
}
fmt.Println(strings.TrimFunc(s, fun))   //输出   sddfg

}

拆合函数

Fields

func Fields(s string) []string
func FieldsFunc(s string, f func(rune) bool) []string
Fields 用一个或多个连续的空格分隔字符串 s,返回子字符串的数组(slice)。如果字符串 s 只包含空格,则返回空列表([]string的长度为0)。其中,空格的定义是 unicode.IsSpace,之前已经介绍过。

由于是用空格分隔,因此结果中不会含有空格或空子字符串。

FieldsFunc 用这样的Unicode代码点 c 进行分隔:满足 f(c) 返回 true。该函数返回[]string。如果字符串 s 中所有的代码点(unicode code points)都满足f(c)或者 s 是空,则 FieldsFunc 返回空slice。也就是说,我们可以通过实现一个回调函数来指定分隔字符串 s 的字符。

示例:

fmt.Printf(“Fields are: %q”, strings.Fields(” foo bar baz “))
fmt.Println(strings.FieldsFunc(” foo bar baz “, unicode.IsSpace))
split

这四个函数放在一起讲,是因为是通过同一个内部函数实现的。

func Split(s, sep string) []string { return genSplit(s, sep, 0, -1) }
func SplitAfter(s, sep string) []string { return genSplit(s, sep, len(sep), -1) }
func SplitN(s, sep string, n int) []string { return genSplit(s, sep, 0, n) }
func SplitAfterN(s, sep string, n int) []string { return genSplit(s, sep, len(sep), n) }
它们都调用了 genSplit 函数。
这四个函数都是通过 sep 进行分割,返回[]string。如果 sep 为空,相当于分成一个个的 UTF-8 字符,如 Split(“abc”,””),得到的是[a b c]。

Split(s, sep) 和 SplitN(s, sep, -1) 等价;SplitAfter(s, sep) 和 SplitAfterN(s, sep, -1) 等价。

那么,Split 和 SplitAfter 有啥区别呢?通过这两句代码的结果就知道它们的区别了:

fmt.Printf(“%q\n”, strings.Split(“foo,bar,baz”, “,”)) // [“foo” “bar” “baz”]
fmt.Printf(“%q\n”, strings.SplitAfter(“foo,bar,baz”, “,”)) // [“foo,” “bar,” “baz”]
也就是说,Split 会将 s 中的 sep 去掉,而 SplitAfter 会保留 sep。

带 N 的方法可以通过最后一个参数 n 控制返回的结果中的 slice 中的元素个数,当 n < 0 时,返回所有的子字符串;当 n == 0 时,返回的结果是 nil;当 n > 0 时,表示返回的 slice 中最多只有 n 个元素,其中,最后一个元素不会分割,比如:

fmt.Printf(“%q\n”, strings.SplitN(“foo,bar,baz”, “,”, 2)) // [“foo” “bar,baz”]
Join

func Join(a []string, sep string) string
将字符串数组(或slice)连接起来可以通过 Join 实现。

假如没有这个库函数,我们自己实现一个,我们会这么实现:

func Join(str []string, sep string) string {
// 特殊情况应该做处理
if len(str) == 0 {
return “”
}
if len(str) == 1 {
return str[0]
}
buffer := bytes.NewBufferString(str[0])
for _, s := range str[1:] {
buffer.WriteString(sep)
buffer.WriteString(s)
}
return buffer.String()
}
使用了 bytes 包的 Buffer 类型,避免大量的字符串连接操作(因为 Go 中字符串是不可变的)。

标准库的实现:

func Join(a []string, sep string) string {
if len(a) == 0 {
return “”
}
if len(a) == 1 {
return a[0]
}
n := len(sep) * (len(a) – 1)
for i := 0; i < len(a); i++ {
n += len(a[i])
}

b := make([]byte, n)       //借助 字节切片实现
bp := <strong><span style="color:#ff0000;">copy</span></strong>(b, a[0])        
for _, s := range a[1:] {
    bp += copy(b[bp:], sep)
    bp += copy(b[bp:], s)
}
return str

标准库的实现没有用 bytes 包,当然也不会简单的通过 + 号连接字符串。Go 中是不允许循环依赖的,标准库中很多时候会出现代码拷贝,而不是引入某个包。这里 Join 的实现方式挺好,我个人猜测,不直接使用 bytes 包,也是不想依赖 bytes 包(其实 bytes 中的实现也是 copy 方式)。

字符串重复次数

func Repeat(s string, count int) string

替换

// 用 new 替换 s 中的 old,一共替换 n 个。
// 如果 n < 0,则不限制替换次数,即全部替换
func Replace(s, old, new string, n int) string

func Map(mapping func(rune) rune, s string) string //满足函数实现的进行替换

Replacer

这是一个结构,没有导出任何字段(字段值小写),实例化通过

// A Replacer replaces a list of strings with replacements.
type Replacer struct {
r replacer //接口类型
}

    // replacer is the interface that a replacement algorithm needs to implement.
    type replacer interface {
        Replace(s string) string
        WriteString(w io.Writer, s string) (n int, err error)
    }

func NewReplacer(oldnew …string) *Replacer
函数进行,其中不定参数 oldnew 是 old-new 对,即进行多个替换。

type Replacer struct { … }

// 创建一个替换规则,参数为“查找内容”和“替换内容”的交替形式。
// 替换操作会依次将第 1 个字符串替换为第 2 个字符串,将第 3 个字符串
// 替换为第 4 个字符串,以此类推。
// 替换规则可以同时被多个例程使用。
func NewReplacer(oldnew …string) *Replacer

// 使用替换规则对 s 进行替换并返回结果。
func (r *Replacer) Replace(s string) string

// 使用替换规则对 s 进行替换并将结果写入 w。
// 返回写入的字节数和遇到的错误。
func (r *Replacer) WriteString(w io.Writer, s string) (n int, err error)
程序示例:

r := strings.NewReplacer(“<“, “<“, “>”, “>”)

fmt.Println(r.Replace(“This is HTML!”)) // 输出结果是 This is <b>HTML</b>!

Reader

看到名字就能猜到,这是实现了 io 包中的接口。它实现了 io.Reader(Read 方法),io.ReaderAt(ReadAt 方法),io.Seeker(Seek 方法),io.WriterTo(WriteTo 方法),io.ByteReader(ReadByte 方法),io.ByteScanner(ReadByte 和 UnreadByte 方法),io.RuneReader(ReadRune 方法) 和 io.RuneScanner(ReadRune 和 UnreadRune 方法)。

Reader 结构如下:

type Reader struct {
s string // Reader 读取的数据来源
i int // current reading index(当前读的索引位置)
prevRune int // index of previous rune; or < 0(前一个读取的 rune 索引位置)
}
可见 Reader 结构没有导出任何字段,而是提供一个实例化方法:

func NewReader(s string) *Reader
该方法接收一个字符串,返回的 Reader 实例就是从该参数字符串读数据。在后面学习了 bytes 包之后,可以知道 bytes.NewBufferString 有类似的功能,不过,如果只是为了读取,NewReader 会更高效。

func (r *Reader) Read(b []byte) (n int, err error)
func (r *Reader) ReadAt(b []byte, off int64) (n int, err error)
func (r *Reader) WriteTo(w io.Writer) (n int64, err error)
func (r *Reader) Seek(offset int64, whence int) (int64, error)

func (r *Reader) ReadByte() (byte, error)
func (r *Reader) UnreadByte() error

func (r *Reader) ReadRune() (ch rune, size int, err error)
func (r *Reader) UnreadRune() error

func (r *Reader) Len() int
func (r *Reader) Size() int64
func (r *Reader) Reset(s string)
其他方法不介绍了,都是之前接口的实现,有兴趣的可以看看源码实现比较简单易懂,大部分都是根据 i、prevRune 两个属性来控制。

共享打印机需要密码的解决方法

Q:共享打印机,客户机访问主机计算机提示输入账户和密码如何解决?
A:造成是此问题的原因是主机电脑安全级别较高造成的,在主机电脑按照以下方法调整即可解决。

  1. Windows XP:点击“开始”→“控制面板”→“WINDOWS防火墙”→“列外”,将“文件和打印机共享”选中,点击“确认”退出。
    Windows 7:打开“控制面板”→“网络和共享中心” →“高级共享设置”:1.启用网络发现。2.启用文件和打印机共享。3.关闭密码保护共享。
  2. 点击“开始”→“控制面板”→“用户账户”,单击“GUEST账户”选择“启用来宾账户”。
  3. 点击“开始”→“控制面板”→“管理工具”→“本地安全策略→“本地策略”→“用户权利指派”。在右侧找到“拒绝本地登陆”双击进入,删除GUEST账户并关闭窗口,再找到“拒绝从网络访问这台计算机”选项,双击进入删除的GUEST账户,确认退出。
  4. 在左侧选择“安全选项”,在右侧找到“网络访问:本地账户的共享和安全模式”双击进入更改为“仅来宾-本地用户以来宾方式认证”。
    完成以上设置后,客户机再访问主机计算机就不需要输入账户和密码了。

关于Windows服务器版本Server2003/2008/2012/2016/2019的下载、安装与激活说明

关于windows系统版本,大家关注较多了解较多的一般都是面向广大用户的桌面操作系统,比如windowsXP/win7/win8,以及最新出的win10都是面向普通用户的桌面系统,但是除了这些系统外,微软还有面向企业、公司、开发人员使用的服务器版本,比如windows server 2003 / 2008 / 2012 / 2016 / 2019 等,对于这些服务器版本的用途,大家关心了解的就比较少了,常见的服务器系统一般用作网站服务器、数据库服务器、软件与应用开发测试服务器等,今天亦是美网络主要给大家介绍一下服务器版本的下载、安装与激活,至于用途的话,大家自行摸索下。

Windows Server 2019 Essentials / Standard / Datacenter

版本说明:该版本包含了 server 2019的Essentials版、标准版、数据中心版,在安装过程中可以选择安装哪个版本,该版本只有64位系统。

下载地址:ed2k://|file|cn_windows_server_2019_x64_dvd_2d80e042.iso|4799084544|7A6915C3A22D2883A23435FEC4A57C8C|/

激活说明:参考MicroKMS神龙版。

Windows Server 2016 Standard / Datacenter

版本说明:该版本包含了 server 2016 的标准版和数据中心版,在安装过程中可以选择安装哪个版本,并且该版本只有64位系统。

下载地址:ed2k://|file|cn_windows_server_2016_x64_dvd_9718765.iso|6176450560|CF1B73D220F1160DE850D9E1979DBD50|/

激活说明:参考MicroKMS神龙版。

Windows Server 2016 Essentials

版本说明:该版本为 server 2016 Essentials版,该版本只有64位系统。

下载地址:ed2k://|file|cn_windows_server_2016_x64_dvd_9327743.iso|6020876288|58F585A340248EF7603A48F832F08B6D|/

激活说明:参考MicroKMS神龙版。

Windows Server 2012 R2 Standard / Datacenter

版本说明:该下载版本包含了 server 2012 R2的标准版和数据中心版,在安装过程中可以选择安装哪个版本,并且该版本只有64位系统。

下载地址:ed2k://|file|cn_windows_server_2012_r2_vl_with_update_x64_dvd_4051059.iso|4683122688|BD0B95997679F83A4EE2D062865D8E64|/

激活说明:参考MicroKMS神龙版。

Windows Server 2012 Standard / Datacenter

版本说明:该版本包含了 server 2012 的标准版和数据中心版,在安装过程中可以选择安装哪个版本,并且该版本只有64位系统。

下载地址:ed2k://|file|cn_windows_server_2012_vl_x64_dvd_917962.iso|3827054592|2F40F8D0D60B86E9FFA551624D5A5257|/

激活说明:参考MicroKMS神龙版。

Windows Server 2008 R2 Web / Standard / Enterprise / Datacenter

版本说明:该下载版本包含了 server2008 R2的网络版、标准版、企业版和数据中心版,在安装过程中可以选择安装哪个版本,并且该版本只有64位系统。

下载地址:ed2k://|file|cn_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_vl_build_x64_dvd_617396.iso|3368962048|7C210CAC37A05F459758BCC1F4478F9E|/

激活说明:参考MicroKMS神龙版。

Windows Server 2008 Standard / Enterprise / Datacenter

版本说明:该下载版本包含了 server2008的标准版、企业版和数据中心版,在安装过程中可以选择安装哪个版本,该版本有32位和64位系统。

下载地址(32位):ed2k://|file|cn_windows_server_standard_enterprise_and_datacenter_with_sp2_x86_dvd_x15-41045.iso|2190057472|E93B029C442F19024AA9EF8FB02AC90B|/

下载地址(64位):ed2k://|file|cn_windows_server_2008_standard_enterprise_and_datacenter_with_sp2_x64_dvd_x15-41319.iso|2952992768|5F2CA73C9DA296CB05E7C0319F7D0E62|/

激活说明:参考MicroKMS神龙版。

Windows Server 2003 R2 Enterprise

版本说明:该下载版本为server2003 R2企业版,可以选择32位和64位系统。

下载地址(32位):

part1、ed2k://|file|cn_win_srv_2003_r2_enterprise_with_sp2_vl_cd1_X13-46432.iso|637917184|284DC0E76945125035B9208B9199E465|/

part2、ed2k://|file|cn_win_srv_2003_r2_enterprise_with_sp2_vl_cd2_X13-13895.iso|129703936|512C89A5839FFC8A3F3124ACB9E9CB75|/

下载地址(64位):

part1、ed2k://|file|cn_win_srv_2003_r2_enterprise_x64_with_sp2_vl_cd1_X13-47314.iso|647686144|107F10D2A7FF12FFF0602FF60602BB37|/

part2、ed2k://|file|cn_win_srv_2003_r2_enterprise_x64_with_sp2_vl_cd2_X13-35321.iso|179204096|651EDB26E33E1AD0F14430245D4D44C6|/

激活说明:参考MicroKMS神龙版或MDGJK-PF6YQ-PD8DJ-RFQVM-7WKWG(32位)、MR78C-GF2CY-KC864-DTG74-VMT73(64位)

最全的微软msdn原版windows系统镜像和office下载地址集锦

windows 10 家庭版/家庭单语言版/专业版/教育版/专业教育版/专业工作站版 简体中文

32位:ed2k://|file|cn_windows_10_consumer_editions_version_1903_x86_dvd_44b77216.iso|3557466112|926D3E6D2503D0E8CB4C8599C8DEC58F|/

64位:ed2k://|file|cn_windows_10_consumer_editions_version_1903_x64_dvd_8f05241d.iso|4905476096|F28FDC23DA34D55BA466BFD6E91DD311|/

windows 10 专业版/教育版/专业教育版/企业版/专业工作站版 简体中文

32位:ed2k://|file|cn_windows_10_business_editions_version_1903_x86_dvd_645a847f.iso|3490486272|587AE6398153C128EC52257B2710EE92|/

64位:ed2k://|file|cn_windows_10_business_editions_version_1903_x64_dvd_e001dd2c.iso|4815527936|47D4C57E638DF8BF74C59261E2CE702D|/

windows 10 企业版 LTSC 2019 简体中文:

32位系统下载:ed2k://|file|cn_windows_10_enterprise_ltsc_2019_x86_dvd_1814dbab.iso|3196803072|2D39C54A2E99BAC308191C74A15B3237|/

64位系统下载:ed2k://|file|cn_windows_10_enterprise_ltsc_2019_x64_dvd_9c09ff24.iso|4478906368|E7C526499308841A4A6D116C857DB669|/

windows 10 企业版 LTSB 2016 简体中文:

32位系统下载:ed2k://|file|cn_windows_10_enterprise_2016_ltsb_x86_dvd_9057089.iso|2817034240|67C3865D03E765BDD4845BA2CB7649F8|/

64位系统下载:ed2k://|file|cn_windows_10_enterprise_2016_ltsb_x64_dvd_9060409.iso|3821895680|FF17FF2D5919E3A560151BBC11C399D1|/

windows 8.1 Pro 专业版(VOL版) 简体中文:

32位系统下载:ed2k://|file|cn_windows_8.1_pro_vl_with_update_x86_dvd_6050910.iso|3200301056|B078A986993B7EDD474FD09EB6FF7E1B|/

64位系统下载:ed2k://|file|cn_windows_8.1_pro_vl_with_update_x64_dvd_6050873.iso|4317507584|B0888275B5BD40E67D3F178B84B9A874|/

windows 8.1 Ent 企业版(VOL版) 简体中文:

32位系统下载:ed2k://|file|cn_windows_8.1_enterprise_with_update_x86_dvd_6050645.iso|3199901696|0209A1FDE82A5AC7A248B4CA3F860F2B|/

64位系统下载:ed2k://|file|cn_windows_8.1_enterprise_with_update_x64_dvd_6050374.iso|4317065216|AC8215A13817CC0EC4EA42E5C92E88B7|/

windows 8 Pro 专业版(VOL版)简体中文:

32位系统下载:ed2k://|file|cn_windows_8_pro_vl_x86_dvd_917720.iso|2595137536|E87CEF7B8B4EFB12B0A7397795209301|/

64位系统下载:ed2k://|file|cn_windows_8_pro_vl_x64_dvd_917773.iso|3558014976|7956620A80428F37D4F2989CB5CF3B5A|/

windows8 Ent 企业版(VOL版) 简体中文:

32位系统下载:ed2k://|file|cn_windows_8_enterprise_x86_dvd_917682.iso|2597502976|7B6541942A16EB54BC81E84558DF09DF|/

64位系统下载:ed2k://|file|cn_windows_8_enterprise_x64_dvd_917570.iso|3560837120|8CAE8064C4B8F9CD84941B4FF4A34722|/

windows 7 Pro 专业版(VOL版) 简体中文:

32位下载地址:ed2k://|file|cn_windows_7_professional_with_sp1_vl_build_x86_dvd_u_677939.iso|2502909952|935E5B4B754527BE3C238FA6ABDD9B86|/

64位下载地址:ed2k://|file|cn_windows_7_professional_with_sp1_x64_dvd_u_677031.iso|3420557312|430BEDC0F22FA18001F717F7AF08C9D5|/

windows7 Ent 企业版简体中文:

32位下载地址:ed2k://|file|cn_windows_7_enterprise_with_sp1_x86_dvd_u_677716.iso|2502856704|B3C25EA4DD88D7E54F22D3C3E78C410B|/

64位下载地址:ed2k://|file|cn_windows_7_enterprise_with_sp1_x64_dvd_u_677685.iso|3265574912|E9DB2607EA3B3540F3FE2E388F8C53C4|/

windows XP专业版(VOL版) 简体中文:

32位系统下载:ed2k://|file|zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070.iso|630237184|EC51916C9D9B8B931195EE0D6EE9B40E|/

Office 2019 Pro Plus (Retail版) 简体中文:

32位版本下载:https://officecdn.microsoft.com/pr/492350f6-3a01-4f97-b9c0-c7c6ddf67d60/Office/Data/setupproplus2019retail.x86.zh-cn.exe

64位版本下载:https://officecdn.microsoft.com/pr/492350f6-3a01-4f97-b9c0-c7c6ddf67d60/Office/Data/setupproplus2019retail.x64.zh-cn.exe

独立安装包(32/64位):ed2k://|file|cn_office_professional_plus_2019_x86_x64_dvd_5e5be643.iso|3775004672|1E4FFA5240F21F60DC027F73F1C62FF4|/

Visio 2019 Pro 专业版(Retail版)简体中文:

32位下载地址:https://officecdn.microsoft.com/pr/492350f6-3a01-4f97-b9c0-c7c6ddf67d60/Office/Data/setupvisiopro2019retail.x86.zh-cn.exe

64位下载地址:https://officecdn.microsoft.com/pr/492350f6-3a01-4f97-b9c0-c7c6ddf67d60/Office/Data/setupvisiopro2019retail.x64.zh-cn.exe

Project 2019 Pro 专业版(Retail版) 简体中文:

32位下载地址:https://officecdn.microsoft.com/pr/492350f6-3a01-4f97-b9c0-c7c6ddf67d60/Office/Data/setupprojectpro2019retail.x86.zh-cn.exe

64位下载地址:https://officecdn.microsoft.com/pr/492350f6-3a01-4f97-b9c0-c7c6ddf67d60/Office/Data/setupprojectpro2019retail.x64.zh-cn.exe

Office 2016 Pro Plus (VOL版) 简体中文:

32位版本下载:ed2k://|file|SW_DVD5_Office_Professional_Plus_2016_W32_ChnSimp_MLF_X20-41351.ISO|986441728|2DE74581C10096137481873B3AD57D43|/

64位版本下载:ed2k://|file|SW_DVD5_Office_Professional_Plus_2016_64Bit_ChnSimp_MLF_X20-42426.ISO|1123452928|31087A00FF67D4F5B4CBF4AA07C3433B|/

Visio 2016 Pro 专业版(VOL版)简体中文:

32位下载地址:ed2k://|file|SW_DVD5_Visio_Pro_2016_W32_ChnSimp_MLF_X20-41580.ISO|609447936|91EB248558F236AA66D234EA03FAD9A9|/

64位下载地址:ed2k://|file|SW_DVD5_Visio_Pro_2016_64Bit_ChnSimp_MLF_X20-42759.ISO|714913792|FC930AB97B366B3595FC2F28ABAC2A6F|/

Project 2016 Pro 专业版(VOL版) 简体中文:

32位下载地址:ed2k://|file|SW_DVD5_Project_Pro_2016_W32_ChnSimp_MLF_X20-41511.ISO|555210752|CA3BD5F8C7B3E263105B041DDD4104AB|/

64位下载地址:ed2k://|file|SW_DVD5_Project_Pro_2016_64Bit_ChnSimp_MLF_X20-42676.ISO|647157760|0BBBF20CA3A5F61A819586ADCE6E4DCB|/

Office 2013 Pro Plus(VOL版) 简体中文:

32位版本下载:ed2k://|file|SW_DVD5_Office_Professional_Plus_2013_W32_ChnSimp_MLF_X18-55126.ISO|850122752|72F01530B3A9C320E166A1A412F1D869|/

64位版本下载:ed2k://|file|SW_DVD5_Office_Professional_Plus_2013_64Bit_ChnSimp_MLF_X18-55285.ISO|958879744|678EF5DD83F825E97FB710996E0BA597|/

Visio 2013 Pro 专业版(VOL版)简体中文:

32位下载地址:https://pan.baidu.com/s/1bpHxvpP 密码: y842

64位下载地址:https://pan.baidu.com/s/1kUTHYcv 密码: x9f5

Project 2013 Pro 专业版(VOL版) 简体中文:

32位下载地址: https://pan.baidu.com/s/1gfenwx9 密码: hzeq

64位下载地址: https://pan.baidu.com/s/1gfenwx9 密码: hzeq

Office 2010 Pro Plus 专业增强版(VOL版)简体中文:

32位版本下载:ed2k://|file|SW_DVD5_Office_Professional_Plus_2010w_SP1_W32_ChnSimp_CORE_MLF_X17-76734.iso|1412091904|79B75EE3F629A1BD925E6C0AEFDECA10|/

64位版本下载:ed2k://|file|SW_DVD5_Office_Professional_Plus_2010w_SP1_64Bit_ChnSimp_CORE_MLF_X17-76742.iso|1612515328|032320121E0EE36D8F0C32EC89CA0AB9|/

Visio 2010 Pro专业版(VOL版)简体中文:

32位版本下载地址:ed2k://|file|SW_DVD5_Visio_Premium_2010w_SP1_W32_ChnSimp_Std_Pro_Prem_MLF_X17-75847.iso|674627584|9945A8591D1B2D185656B5B3DC2CA24B|/

64位版本下载地址:ed2k://|file|SW_DVD5_Visio_Premium_2010w_SP1_64Bit_ChnSimp_Std_Pro_Prem_MLF_X17-75849.iso|770732032|B0BFCB2BA515B4A55936332FBD362844|/

Project 2010 Pro专业版(VOL版)简体中文:

32位版本下载地址:ed2k://|file|SW_DVD5_Project_Pro_2010w_SP1_W32_ChnSimp_MLF_X17-76643.iso|616083456|0E343DD19A9D487312F80EDD4ED4FBFE|/

64位版本下载地址:ed2k://|file|SW_DVD5_Project_Pro_2010w_SP1_64Bit_ChnSimp_MLF_X17-76658.iso|696616960|00A5C47805084B2D90E9380D163FF1A9|/

office 2007 Pro Plus 专业加强版 简体中文:

通用版本下载:ed2k://|file|cn_office_professional_plus_2007_dvd_X12-38713.iso|694059008|CFAE350F8A9028110D12D61D9AEC1315|/

office 2003 STD 标准版 简体中文:

32位下载:ed2k://|file|sc_office_2003_std.iso|429031424|DB59D0F8CC31EF72CC15D675FC9B7C34|/

office2003 Pro 专业版 简体中文:

32位下载:ed2k://|file|sc_office_2003_pro.iso|616847360|AB7DEC602B533F9DF8A04AAB1B27C213|/

kms激活win10不是激活永久

kms激活win10不是激活永久。

你可以查看一直: 1、同时按win+R键打开“运行”,输入slmgr.vbs -xpr 回车。

2、同时按win+R键打开“运行”,输入slmgr.vbs -dlv 回车,里面没有日期限止提示,就是永久激活。

3、同时按win+R键打开“运行”,输入 winver 回车,里面没有日期限止提示,就是永久激活。 注意:第1和2方法的vbs和 – 之间有一个空格。

关于U盘启动快捷键

组装机主板品牌笔记本品牌台式机
主板品牌启动按键笔记本品牌启动按键台式机品牌启动按键
华硕主板F8联想笔记本F12联想台式机F12
技嘉主板F12宏基笔记本F12惠普台式机F12
微星主板F11华硕笔记本ESC宏基台式机F12
映泰主板F9惠普笔记本F9戴尔台式机ESC
梅捷主板ESC或F12联想ThinkpadF12神舟台式机F12
七彩虹主板ESC或F11戴尔笔记本F12华硕台式机F8
华擎主板F11神舟笔记本F12方正台式机F12
斯巴达卡主板ESC东芝笔记本F12清华同方台式机F12
昂达主板F11三星笔记本F12海尔台式机F12
双敏主板ESCIBM笔记本F12明基台式机F8
翔升主板F10富士通笔记本F12  
精英主板ESC或F11海尔笔记本F12  
冠盟主板F11或F12方正笔记本F12  
富士康主板ESC或F12清华同方笔记本F12  
顶星主板F11或F12微星笔记本F11  
铭瑄主板ESC明基笔记本F9  
盈通主板F8技嘉笔记本F12  
捷波主板ESCGateway笔记本F12  
Intel主板F12eMachines笔记本F12  
杰微主板ESC或F8索尼笔记本ESC  
致铭主板F12小米笔记本F12  
磐英主板ESC    
磐正主板ESC    
冠铭主板F9 

使用PHP QR Code生成二维码

HP QR Code是一个PHP二维码生成类库,利用它可以轻松生成二维码,官网提供了下载和多个演示demo,查看地址:

http://phpqrcode.sourceforge.net/
下载官网提供的类库后,只需要使用phpqrcode.php就可以生成二维码了,当然您的PHP环境必须开启支持GD2。

phpqrcode.php提供了一个关键的png()方法,其中
参数$text表示生成二位的的信息文本;
参数$outfile表示是否输出二维码图片 文件,默认否;
参数$level表示容错率,也就是有被覆盖的区域还能识别,分别是 L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%);
参数$size表示生成图片大小,默认是3;参数$margin表示二维码周围边框空白区域间距值;
参数$saveandprint表示是否保存二维码并显示。

. 代码如下:

public static function png($text, $outfile=false, $level=QR_ECLEVEL_L, $size=3, $margin=4, $saveandprint=false)
{
$enc = QRencode::factory($level, $size, $margin);
return $enc->encodePNG($text, $outfile, $saveandprint=false);
}
调用PHP QR Code非常简单,如下代码即可生成一张内容为”http://www.cnblogs.com/txw1958/”的二维码.

include ‘phpqrcode.php’;
QRcode::png(‘http://zj.5a8.com/’);

那么实际应用中,我们会在二维码的中间加上自己的LOGO,已增强宣传效果。那如何生成含有logo的二维码呢?其实原理很简单,先使用PHP QR Code生成一张二维码图片,然后再利用php的image相关函数,将事先准备好的logo图片加入到刚生成的原始二维码图片中间,然后重新生成一张新 的二维码图片。
. 代码如下:


include ‘phpqrcode.php’;
$value = ‘zj.5a8.com’; //二维码内容
$errorCorrectionLevel = ‘L’;//容错级别
$matrixPointSize = 6;//生成图片大小
//生成二维码图片
QRcode::png($value, ‘qrcode.png’, $errorCorrectionLevel, $matrixPointSize, 2);
$logo = ‘logo.png’;//准备好的logo图片
$QR = ‘qrcode.png’;//已经生成的原始二维码图

if ($logo !== FALSE) {
$QR = imagecreatefromstring(file_get_contents($QR));
$logo = imagecreatefromstring(file_get_contents($logo));
$QR_width = imagesx($QR);//二维码图片宽度
$QR_height = imagesy($QR);//二维码图片高度
$logo_width = imagesx($logo);//logo图片宽度
$logo_height = imagesy($logo);//logo图片高度
$logo_qr_width = $QR_width / 5;
$scale = $logo_width/$logo_qr_width;
$logo_qr_height = $logo_height/$scale;
$from_width = ($QR_width – $logo_qr_width) / 2;
//重新组合图片并调整大小
imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,
$logo_qr_height, $logo_width, $logo_height);
}
//输出图片
imagepng($QR, ‘helloweixin.png’);
echo ”;

include ‘phpqrcode.php’;
$value = ‘zj.5a8.com’; //二维码内容
$errorCorrectionLevel = ‘L’;//容错级别
$matrixPointSize = 6;//生成图片大小
//生成二维码图片
QRcode::png($value, ‘qrcode.png’, $errorCorrectionLevel, $matrixPointSize, 2);
$logo = ‘logo.png’;//准备好的logo图片
$QR = ‘qrcode.png’;//已经生成的原始二维码图

if ($logo !== FALSE) {
$QR = imagecreatefromstring(file_get_contents($QR));
$logo = imagecreatefromstring(file_get_contents($logo));
$QR_width = imagesx($QR);//二维码图片宽度
$QR_height = imagesy($QR);//二维码图片高度
$logo_width = imagesx($logo);//logo图片宽度
$logo_height = imagesy($logo);//logo图片高度
$logo_qr_width = $QR_width / 5;
$scale = $logo_width/$logo_qr_width;
$logo_qr_height = $logo_height/$scale;
$from_width = ($QR_width – $logo_qr_width) / 2;
//重新组合图片并调整大小
imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,
$logo_qr_height, $logo_width, $logo_height);
}
//输出图片
imagepng($QR, ‘helloweixin.png’);
echo ”;

PHP是用VC11,VC14或VC15(分别为Visual Studio 2012,2015或2017编译器)构建的

  • VC9构建需要安装Visual Studio 2008 x86或x64的Visual C ++ Redistributable
  • VC11构建需要安装Visual Studio 2012 x86或x64的Visual C ++ Redistributable
  • VC14构建需要安装Visual Studio 2015 x86或x64的Visual C ++ Redistributable
  • VC15构建需要安装Visual Studio 2017 x64或x86的Visual C ++ Redistributable