今天我将我的firefox更新到最新版本,其中一个重要功能是桌面阅读器视图.我们两周前推出了一个网店,现在有一个小小的"读者视图"图标.当我点击它时,我收到一条错误消息.我的团队负责人希望我在访问此网站时删除此功能.
是否可以在访问我的网站时从Firefox中删除或隐藏"阅读器视图"功能?
我知道我能得到:line并且:file从一个变种的元数据; 但是,我正在构建一个系统,用户可以在其中传递原始地图,最后我会将数据"链接"在一起.当此链接失败时,我想报告他们指定地图的文件/行.例如:
(defn generate-stuff []
(make-thing { :k (make-thing { :k v }) }))
(link (generate-stuff) (other-generator))
;; outputs file/line of the map containing the errant :k/v pair
Run Code Online (Sandbox Code Playgroud)
我假设写一个宏来关联文件/行与集合的元数据几乎肯定是要走的路,但由于没有任何"var"可供查看,我不知道从哪里获取行号.我看到了get-line-number的定义,但它需要一个读者,虽然我可以找到所有特殊的读者和 *default-data-reader-fn*数据读取器(这是零),但我似乎无法弄清楚如何访问"代码"读者.
我有一个连接,像这样创建:
conn, err = net.Dial("tcp", "127.0.0.1:20000")
Run Code Online (Sandbox Code Playgroud)
我尝试过两种方式从这个连接中读取.我认为他们都必须工作,但第一种选择却不行.
这是第一种方式:
var bytes []byte
for i := 0; i < 4; i++ {
conn.Read(bytes)
}
fmt.Printf("%v", bytes)
Run Code Online (Sandbox Code Playgroud)
此方法的输出是:
[]
Run Code Online (Sandbox Code Playgroud)
这是完全相同的事情,完成bufio.Reader:
func readResponse(conn net.Conn) (response string, err error) {
reader := bufio.NewReader(conn)
_, err = reader.Discard(8)
if err != nil {
return
}
response, err = reader.ReadString('\n')
return
}
Run Code Online (Sandbox Code Playgroud)
此函数返回服务器在TCP连接另一端给出的响应.
为什么bufio.Reader.Read()工作,但net.Conn.Read()不是?
我围绕使用RWS(Reader+ Writer+ State)monad 构建计算:
newtype Problem a = Problem { unProblem :: RWS MyEnv MyLog MyState a }
deriving ({- lots of typeclasses -})
Run Code Online (Sandbox Code Playgroud)
通过组装表单的基本计算逐步构建计算
foo :: a -> Problem b
Run Code Online (Sandbox Code Playgroud)
然而,有时候,子计算不需要RWSmonad 的全部功能.例如,考虑一下
bar :: c -> State MyState d
Run Code Online (Sandbox Code Playgroud)
我想bar在Problemmonad 的上下文中使用作为更大计算的一部分.我可以看到三种方式,这对我来说似乎都不是很优雅.
手动解包State计算并将其重新包装在RWS monad中:
baz :: a -> RWS MyEnv MyLog MyState c
baz x = do temp <- foo x
initialState <- get
let (finalResult, …Run Code Online (Sandbox Code Playgroud)我试图弄清楚lambda演算为什么以下代码的函数结果
(,) <$> (+1) <*> (+1)
Run Code Online (Sandbox Code Playgroud)
类型为Num a => a - >(a,a)而不是Num a => a - > a - >(a,a)
这就是我所拥有的,我做了一些可怕的错误,或者<*>只是这样连接?
( \x, y -> (,) x y ) <$> ( \x -> x + 1 ) <*> ( \x -> x + 1 )
-- fmap applies first
(\x y -> (,) ((+1) x) y ) <*> ( \x -> x + 1 ) -- substituted the lambda with (+1) for better clarity
-- then goes apply
( \x …Run Code Online (Sandbox Code Playgroud) 我正在使用该archive/zip库,并且需要在将 zip 存档内的文件上传到 s3 之前对其进行即时修改。目前我正在返回,io.ReadCloser但我用来修改用户的函数需要io.Reader:
//Function Signature:
Convert(r io.Reader, w io.Writer, ...)
Run Code Online (Sandbox Code Playgroud)
我还需要一个io.Writer……如果你能帮助我确定如何创建一个作家,我会加分。下面是一些示例代码,可以提供一些上下文:
for _, f := range r.File {
if filepath.Ext(f.Name) != ".txt" {
_, filename := path.Split(f.Name)
var rc io.ReadCloser
if rc, err = f.Open(); err == nil {
// FIXME: Convert
if err = Convert(rc.Reader, *zip.Writer.Create(f.Name), ...); err != nil {
errStr := fmt.Sprintf("Unable to convert")
log.Println(errStr)
} else {
log.Println("Success!")
}
// Upload to s3
.....
}
} …Run Code Online (Sandbox Code Playgroud) 现在我似乎没有得到那些流(输入/输出)和普通writer和reader甚至scanner和formatter... 之间的区别.
而为何InputStream有这样大量的子类DataInputStream,并BufferedInputStream和所有的混乱(与同为OutputStream当然的)...
最后一件事,如果缓冲区是那么好(所以我读)并且效率高,为什么任何人都会使用任何其他输入/输出方式(为什么它们甚至被制作?)
[WebMethod]
public List<reports> getMyReports( int user_id )
{
string cs = ConfigurationManager.ConnectionStrings["ReportDB"].ConnectionString;
using (SqlConnection con = new SqlConnection(cs))
{
SqlCommand cmd = new SqlCommand("getAllReportsByUserID", con);
cmd.CommandType = CommandType.StoredProcedure;
List<reports> repers = new List<reports>();
//users[][] liser = new users[][];
SqlParameter user_id_parameter = new SqlParameter("@user_id", user_id);
cmd.Parameters.Add(user_id_parameter);
reports report = new reports();
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
report.id = Convert.ToInt32(reader["id"]);
report.title = reader["title"].ToString();
report.description = reader["description"].ToString();
report.anonymous = (bool)reader["anonymous"];
report.location = reader["location"].ToString();
report.status = reader["status"].ToString();
report.category = reader["category"].ToString();
report.date …Run Code Online (Sandbox Code Playgroud) 我有以下片段
import csv
data = {}
with open('data.csv', 'rb') as csvfile:
spamreader = csv.reader(csvfile, quotechar=None)
count = 0
for row in spamreader:
data.update({row[0]:row[1]})
count+=1
print(count)
print(len(data))
Run Code Online (Sandbox Code Playgroud)
该文件data.csv总共包含 234611 行和 2 列。
输出是:
234611
52183
现在,读者可以阅读所有行,但无法将它们填充到data字典中。知道如何调试这个问题吗?另外,值得一提的是,csv 文件包含大量非英语字符。
每一个人.
我无法找到一种pythonic方法来忽略CSV中的"空白"行.我使用引号,因为我说的是看起来像'','','','',''的行.这是一个CSV(空行可以是随机的):
id,name,age
1,alex,22
3,tiff,42
,,
,,
4,john,24
Run Code Online (Sandbox Code Playgroud)
这是代码:
def getDataFromCsv(path):
dataSet = []
with open(unicode(path), 'r') as stream:
reader = csv.reader(stream, delimiter=',')
reader.next() # ignoring header
for rowdata in reader:
# how to check here?
dataSet.append(rowdata)
return dataSet
Run Code Online (Sandbox Code Playgroud)
这是我一直在阅读的类似问题,但特别是与此不同: python csv reader忽略空行
我需要将 Reader 对象转换为 InputStream。我现在的解决方案如下。但我担心的是,由于这将处理大量数据,因此会大大增加内存使用量。
private static InputStream getInputStream(final Reader reader) {
char[] buffer = new char[10240];
StringBuilder builder = new StringBuilder();
int charCount;
try {
while ((charCount = reader.read(buffer, 0, buffer.length)) != -1) {
builder.append(buffer, 0, charCount);
}
reader.close();
} catch (final IOException e) {
e.printStackTrace();
}
return new ByteArrayInputStream(builder.toString().getBytes(StandardCharsets.UTF_8));
}
Run Code Online (Sandbox Code Playgroud)
由于我使用 StringBuilder,这会将读取器对象的全部内容保留在内存中。我想避免这种情况。有没有办法可以通过管道传输 Reader 对象?对此的任何帮助表示高度赞赏。
我使用此代码ID从表中获取最大值PatientInfo:
private void LoadID()
{
string query = "SELECT MAX(ID) FROM PatientInfo";
using (SqlConnection cn = new SqlConnection(constr))
using (SqlCommand cmd = new SqlCommand(query, cn))
{
cn.Open();
SqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
txtid.Text = reader["ID"].ToString();
}
}
else
{
// other code
}
reader.Close();
cn.Close();
}
}
Run Code Online (Sandbox Code Playgroud)
因为我必须首先检查是否存在任何记录,我正在使用reader.HasRows.之后,代码应获取ID并将其放入文本框.但事实并非如此.它扔了一个IndexOutOfRangeException.我无法弄明白为什么.
在我的数据库中,我插入了一条记录.但它仍然在两个条件下给出相同的结果(1.当我在表中没有数据时和2.当我在表中有数据时)
其次,我试图在表格中手动输入数据,但它什么都不做,并说下面的事情
因此,没有添加数据
我正试图让io.Reader从这个天气回来,这是我给出的链接或路径.对于某些上下文我正在使用标志
func getString(link, path string) (io.Reader, error) {
var dick io.ReadWriter
if link != "" {
resp, err := http.Get(link)
if err != nil {
return nil, err
}
io.Copy(dick, resp.Body)
}
if path != "" {
file, err := os.Open(path)
if err != nil {
return nil, err
}
io.Copy(dick, file)
}
return dick, nil
}
Run Code Online (Sandbox Code Playgroud)
和繁荣
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x46e949]
Run Code Online (Sandbox Code Playgroud)
这个坏男孩来了
reader ×13
go ×3
writer ×3
c# ×2
csv ×2
haskell ×2
inputstream ×2
java ×2
python ×2
applicative ×1
asp.net ×1
clojure ×1
connection ×1
exception ×1
firefox ×1
io ×1
list ×1
monads ×1
null ×1
outputstream ×1
sql-server ×1
state ×1
web ×1
zip ×1